Systems and methods for updating a medical device

ABSTRACT

Embodiments described herein include methods and/or systems for updating a medical device. Embodiments include medical devices which are configured for updates in response to various events including connection of a peripheral device to the medical device, a user initiated event, or based on received recommendations.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.14/529,535, filed Oct. 31, 2014, which is a continuation of U.S.application Ser. No. 14/275,838, filed May 12, 2014, now U.S. Pat. No.8,887,148, which is a continuation of U.S. application Ser. No.13/114,020, filed May 23, 2011, now U.S. Pat. No. 8,726,266, whichclaims the benefit of U.S. Provisional Application No. 61/347,813 filedMay 24, 2010, all of which are incorporated by reference herein in theirentirety for all purposes.

BACKGROUND

In diabetes management, devices are available for diabetic patients tomeasure their blood glucose levels. One such type of devices includesblood glucose meters that analyze blood samples via enzyme-based teststrips. Typically, the patient lances a finger or alternate body site toobtain a blood sample and applies the drawn blood sample to the teststrip in the blood glucose meter housing for analysis and determinationof the corresponding blood glucose value which is displayed, stored orotherwise provided to the patient to show the level of glucose at thetime of testing. Other commercially available devices include continuousglucose monitoring devices that periodically receive and process analyterelated data from a transcutaneous sensor. The received and processeddata may then be displayed or otherwise provided to the patient toenable the patient to continuously track measured glucose levels.

With the decreasing cost of electronic components and a correspondingincrease in data processing capabilities of microprocessors,computational capability of electronic devices have been rapidlyincreasing. However, currently available glucose meters are generallyconfigured with limited functionalities related to glucose testing andmonitoring.

SUMMARY

Embodiments of the present disclosure include methods and/or systems forupdating medical devices. In one embodiment a method for updating amedical device is provided in which a connection between a peripheraldevice and a medical device is established. In certain embodiments, theperipheral device has at least one functionality not supported orinitially included in the medical device. When the peripheral device isidentified, data and/or software associated with the peripheral deviceis also identified. The identified data and/or software corresponds tothe at least one functionality not supported or initially included inthe medical device. Once the data and/or software is identified, themedical device is updated based on the identified data and/or softwareand the updated medical device may control the at least onefunctionality of the peripheral device. In certain embodiments, themedical device includes a blood glucose meter, a continuous glucosemonitoring device, an oximeter, a pulse oximeter, a temperature sensor,a respirometer, a heart rate monitor, an electrocardiogram monitor, or ablood pressure monitor.

These and other objects, features and advantages of the presentdisclosure will become more fully apparent from the following detaileddescription of the embodiments, the appended claims and the accompanyingdrawings.

INCORPORATION BY REFERENCE

The following patents, applications and/or publications are incorporatedherein by reference for all purposes: U.S. Pat. Nos. 4,545,382;4,711,245; 5,262,035; 5,262,305; 5,264,104; 5,320,715; 5,356,786;5,509,410; 5,543,326; 5,593,852; 5,601,435; 5,628,890; 5,820,551;5,822,715; 5,899,855; 5,918,603; 6,071,391; 6,103,033; 6,120,676;6,121,009; 6,134,461; 6,143,164; 6,144,837; 6,161,095; 6,175,752;6,270,455; 6,284,478; 6,299,757; 6,338,790; 6,377,894; 6,461,496;6,503,381; 6,514,460; 6,514,718; 6,540,891; 6,560,471; 6,579,690;6,591,125; 6,592,745; 6,600,997; 6,605,200; 6,605,201; 6,616,819;6,618,934; 6,650,471; 6,654,625; 6,676,816; 6,730,200; 6,736,957;6,746,582; 6,749,740; 6,764,581; 6,773,671; 6,881,551; 6,893,545;6,932,892; 6,932,894; 6,942,518; 7,041,468; 7,167,818; and 7,299,082;U.S. Published Application Nos. 2004/0186365; 2005/0182306;2006/0025662; 2006/0091006; 2007/0056858; 2007/0068807; 2007/0095661;2007/0108048; 2007/0199818; 2007/0227911; 2007/0233013; 2008/0066305;2008/0081977; 2008/0102441; 2008/0148873; 2008/0161666; 2008/0267823;and 2009/0054748; U.S. patent application Ser. Nos. 11/461,725;12/131,012; 12/242,823; 12/363,712; 12/495,709; and Ser. No. 12/698,124;12/714,439; 12/794,721; 12/807,278; 12/842,013; 12/848,075; and12/871,901 and U.S. Provisional Application No. 61/347,754.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a health monitoring device according to embodiments of thepresent disclosure.

FIG. 2 is a block diagram of the health monitoring device of FIG. 1according to embodiments of the present disclosure.

FIG. 3 illustrates a block diagram of a data monitoring and managementsystem according to embodiments of the present disclosure.

FIG. 4 illustrates a block diagram of an upgrade and recovery systemaccording to embodiments of the present disclosure.

FIG. 5 is a flowchart illustrating a method for updating a medicaldevice according to embodiments of the present disclosure.

FIG. 6 is a flowchart illustrating a method for recovering non-userconfigurable data according to embodiments of the present disclosure.

FIG. 7 is a flowchart illustrating a method for transferring userconfigurable data from a first device to a second device according toembodiments of the present disclosure.

FIG. 8 is a flow chart illustrating a method for upgrading a medicaldevice based on detecting a connection with a peripheral deviceaccording to embodiments of the present disclosure.

FIG. 9 is a flow chart illustrating a method for updating a medicaldevice according to embodiments of the present disclosure.

FIG. 10 is a flow chart illustrating a method for updating datamanagement software according to embodiments of the present disclosure.

FIG. 11 is a flow chart illustrating a method for upgrading software ona medical device and/or a computing device according to embodiments ofthe present disclosure.

FIG. 12A is a flow chart illustrating an embodiment of a system andmethod for updating a device history record.

FIG. 12B is a flow chart illustrating another embodiment of a system andmethod for updating a device history record.

FIG. 13A is a flow chart illustrating an embodiment of a system andmethod for updating a device history record for a medical devicecombined with an add-on module.

FIG. 13B is a flow chart illustrating another embodiment of a system andmethod for updating a device history record for a medical devicecombined with an add-on module.

FIG. 14 is a flow chart illustrating a method for upgrading a medicaldevice when a peripheral device is connected to the medical deviceaccording to embodiments of the present disclosure.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Before the present disclosure is described in additional detail, it isto be understood that this disclosure is not limited to particularembodiments described, as such may, of course, vary. It is also to beunderstood that the terminology used herein is for the purpose ofdescribing particular embodiments only, and is not intended to belimiting, since the scope of the present disclosure will be limited onlyby the appended claims.

Where a range of values is provided, it is understood that eachintervening value, to the tenth of the unit of the lower limit unlessthe context clearly dictates otherwise, between the upper and lowerlimit of that range and any other stated or intervening value in thatstated range, is encompassed within the disclosure. The upper and lowerlimits of these smaller ranges may independently be included in thesmaller ranges is also encompassed within the disclosure, subject to anyspecifically excluded limit in the stated range. Where the stated rangeincludes one or both of the limits, ranges excluding either or both ofthose included limits are also included in the disclosure.

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which this disclosure belongs. Although any methods andmaterials similar or equivalent to those described herein can also beused in the practice or testing of the present disclosure, the preferredmethods and materials are now described. All publications mentionedherein are incorporated herein by reference to disclose and describe themethods and/or materials in connection with which the publications arecited.

It must be noted that as used herein and in the appended claims, thesingular forms “a”, “an”, and “the” include plural referents unless thecontext clearly dictates otherwise.

The publications discussed herein are provided solely for theirdisclosure prior to the filing date of the present application. Nothingherein is to be construed as an admission that the present disclosure isnot entitled to antedate such publication by virtue of prior disclosure.Further, the dates of publication provided may be different from theactual publication dates which may need to be independently confirmed.

As will be apparent to those of skill in the art upon reading thisdisclosure, each of the individual embodiments described and illustratedherein has discrete components and features which may be readilyseparated from or combined with the features of any of the other severalembodiments without departing from the scope or spirit of the presentdisclosure.

The figures shown herein are not necessarily drawn to scale, with somecomponents and features being exaggerated for clarity.

Embodiments described herein relate to upgrading, updating, adding, ormodifying a medical device such as, for example a blood glucosemonitoring device, a continuous glucose monitoring device, and/orcomponents of an analyte monitoring system. In certain aspects of thepresent disclosure, the medical device is upgraded and provided withupdated software and/or data to assist users in better managing theirhealth. In the manner described, in aspects of the present disclosure,patients with Type-1 or Type-2 diabetic conditions may improve theirdiabetes management, and further, the patients, users or healthcareproviders may be provided with tools to improve the treatment of suchconditions.

FIG. 1 shows a health monitoring device 100 in accordance with oneembodiment of the present disclosure. Health monitoring device 100includes a housing 110 with a display unit 120 provided thereon. Incertain embodiments, the display unit 120 may be a touch sensitivedisplay. The touch sensitive display is configured to allow a user ofthe health monitoring device 100 to input data or control operation ofthe health monitoring device 100. Additionally, the user may adjustvarious features and/or settings of the health monitoring device 100using the touch sensitive display.

Also shown in FIG. 1 is a plurality of input buttons 130, eachconfigured to allow the user of the health monitoring device 100 toinput or enter data or relevant information associated with theoperation of the health monitoring device 100. For example, the user ofthe health monitoring device 100 may operate the one or more inputbuttons 130 to enter a calibration code associated with a test strip160, or other fluid sample reception means, for use in conjunction withthe health monitoring device 100. Additionally, the user may operate theone or more input buttons 130 to adjust time and/or date information, aswell as other features or settings associated with the operation of thehealth monitoring device 100. In certain embodiments, the plurality ofinput buttons 130 are not included on the health monitoring device 100,such as, for example, when the display unit is a touch sensitivedisplay.

In certain embodiments, manual entry of the calibration code associatewith the test strip 160 may be unnecessary. Certain embodiments includetest strips such as test strip 160 encoded or provided with theassociated calibration code, which may be automatically detected and/orprocessed or retrieved by the health monitoring device 100. In certainembodiments test strips such as test strip 160 may be manufactured suchthat calibration is unnecessary, obviating the need for the healthmonitoring device 100 to process, request, or detect such information.

In one embodiment, health monitoring device 100 may include a bloodglucose meter with a medication dose calculation function, such as, forexample a bolus calculation function configured to calculate a singlebolus dosage amount of a medication such as insulin. In certainembodiments, the insulin may be long acting, fast acting or rapid actinginsulin.

Health monitoring device 100 may also include an input unit 140 which,in one embodiment, may be configured as a jog dial, or the like, andprovided on the housing 110 of the health monitoring device 100. In oneembodiment, the user or the patient may operate the input unit 140 toperform calculations and determinations associated with one or moremedication dose estimation functions, such as a bolus dose estimationfunction, of the health monitoring device 100. The input unit 140 mayalso be used to make or select various options, features, or add-onsthat may be available for the health monitoring device 100.

In aspects of the present disclosure, a test strip port 150 may beintegrated with the housing of the health monitoring device 100. Incertain embodiments, the test strip port 150 is provided in a separatehousing or as a separate component that may be physically orelectrically coupled to the health monitoring device 100 providingmodularity to the health monitoring system. As will be discussed ingreater detail below, other components may also be attached to thehousing of the health monitoring device 100 to provided addedfunctionality to the health monitoring device 100.

In operation, microprocessor or a control unit 210 (FIG. 2) of thehealth monitor device 100 may be configured to determine the glucoselevel in the blood sample, and display the determined glucose level onthe display unit 120 when the blood sample is provided on the test strip160 which is positioned in the strip port 150 of the health monitoringdevice 100.

In addition to the discrete in vitro glucose testing described above,embodiments include measurement or monitoring of glucose levels and thelevels of other analytes, drugs, or physiological conditions based on auser request, prompt or command, or based on a programmed orprogrammable time schedule (for example but not limited to, such as onceevery minute, once every five minute, or once every ten minutes).Analyte levels that may be determined include, for example, acetylcholine, amylase, bilirubin, cholesterol, chorionic gonadotropin,creatine kinase (e.g., CK-MB), creatine, DNA, fructosamine, glucose,glutamine, growth hormones, hormones, ketones (e.g., ketone bodies),lactate, oxygen, peroxide, prostate-specific antigen, prothrombin, RNA,thyroid stimulating hormone, and troponin. Assays suitable fordetermining the concentration of DNA and/or RNA are disclosed in U.S.Pat. No. 6,281,006 and U.S. Pat. No. 6,638,716, the disclosures of eachof which are incorporated by reference herein. Furthermore, theconcentration of drugs, such as, for example, antibiotics (e.g.,gentamicin, vancomycin, and the like), digitoxin, digoxin, drugs ofabuse, theophylline, and warfarin, may also be determined.

In addition, in accordance with the various embodiments of the presentdisclosure, the health monitoring device 100 may be configured toautomatically enter into a medication dosage calculation mode to, forexample, estimate a medication dosage amount based on information storedin the health monitoring device 100 (such as the patient's insulinsensitivity, for example), and/or prompt the patient to provideadditional information, such as the amount of carbohydrate to beingested by the patient for determination of, for example, acarbohydrate bolus dosage determination. The patient may operate theinput unit 140 in conjunction with a user interface menu provided on thedisplay unit 120 to provide the appropriate information. Additionalfeatures and descriptions of exemplary health monitoring devicesincluding glucose monitoring device and/or blood glucose meters areprovided in U.S. patent application Ser. No. 12/699,653 filed Feb. 3,2010 and Ser. No. 12/699,844 filed Feb. 3, 2010, the disclosures of eachof which are incorporated in their entirety by reference for allpurposes.

In another embodiment, the health monitoring device 100 may beconfigured to prompt the patient to select whether to retrieve apredetermined or preprogrammed medication dosage amount such as, forexample, a correction bolus or a carbohydrate bolus, following thedisplay of the determined analyte level from the test strip 160. In thismanner, in one embodiment of the present disclosure, the healthmonitoring device 100 may be configured to automatically prompt the useror patient to select whether a medication dosage determination isdesired following analyte testing using the test strip 160.

Additional information is provided in U.S. Pat. No. 7,041,468 issued onMay 9, 2006 entitled “Blood Glucose Tracking Apparatus and Method” andin U.S. Patent Publication No. U.S. 2004/0245534 published Dec. 16, 2004entitled “Glucose Measuring Module and Insulin Pump Combination”, thedisclosure of each of which is incorporated herein by reference for allpurposes.

FIG. 2 is a block diagram of the health monitoring device 100 (FIG. 1)in one embodiment of the present disclosure. Referring to FIG. 2, thehealth monitoring device 100 includes a controller unit 210 operativelycoupled to a communication interface 220 and configured forbidirectional communication. The controller unit 210 is furtheroperatively coupled to a test strip interface 230, an input section 240(which, for example, may include the input unit 140 and the plurality ofinput buttons 130 as shown in FIG. 1), an output unit 250, and a datastorage unit 260.

Referring to FIG. 2, in one embodiment of the present disclosure, thetest strip interface 230 is configured for signal communication with theinserted test strip 160 (FIG. 1) for determination of the fluid sampleon the test strip 160. In addition, the test strip interface 230 mayinclude an illumination segment which may be configured to illuminatethe test strip port 150 (FIG. 1) using a light emitting diode (LED), forexample, during the test strip insertion process to assist the user inproperly and accurately inserting the test strip 160 into the test stripport 150.

Moreover, in a further aspect of the present disclosure, the test stripinterface 230 may be additionally configured with a physical latch orother securing mechanism internally provided within the housing 110 ofthe health monitoring device 100 such that when the test strip 160 isinserted into the strip port 150 the test strip 160 is retained in thereceived position until the sample analysis is completed. Examples ofsuch physical latch or securing mechanism may include a unidirectionalbiased anchor mechanism or a pressure application mechanism that retainsthe test strip 160 in place by applying pressure on one or more surfacesof the test strip 160.

Referring back to FIG. 2, the output unit 250 may be configured tooutput or display data or information to a user on a display unit, suchas display unit 120 (FIG. 1). Such information may include thedetermined analyte level, software upgrade progress mode and the like.In addition, in still a further aspect of the present disclosure, theoutput unit 250 and the input section 240 may be integrated, forexample, in the case where the display unit 120 is configured as a touchsensitive display where the patient may enter information or commandsvia the display area using, for example, a finger or stylus or any othersuitable input device.

In certain embodiments, the communication interface 220 includes awireless communication section configured for bi-directional radiofrequency (RF) communication with other devices to transmit and/orreceive data to and from the health monitoring device 100. In addition,the communication interface 220 may also be configured to includephysical ports or interfaces such as one or more of a USB port, anRS-232 port, a serial port, a IEEE 1394 (Firewire) port, an Ethernetport or any other suitable electrical connection port to allow datacommunication between the health monitoring device 100 and otherexternal devices such as a computer terminal (for example, at aphysician's office or in hospital environment), a personal computer, alaptop computer, a notebook computer, an iPad, a tablet computingdevice, a cellular telephone, a smart phone, a personal data assistant,a workstation, a server, a mainframe computer, a cloud computing system,an external medical device, such as an infusion device, an analytemonitoring device, or including an insulin delivery device, or otherdevices that are configured for similar complementary datacommunication.

In other embodiments, the wireless communication section of thecommunication interface 220 may be configured for infraredcommunication, Bluetooth communication, wireless USB communication,ZigBee communication, cellular communication, Wi-Fi (IEEE 802.1 Ix)communication, RFID (passive or active) communication, or any othersuitable wireless communication mechanism to enable the healthmonitoring device 100 to communicate with other devices such as infusiondevices, analyte monitoring devices, computer terminals, servers,personal computers, laptop computers, notebook computers, iPads, tabletcomputers, cell phones, smart phones, workstations, mainframe computers,cloud computing systems, communication enabled mobile telephones,personal digital assistants, or any other communication devices withwhich the patient or user of the health monitoring device 100 may use inconjunction therewith, in managing the treatment of a health condition,such as diabetes.

Software and firmware upgrades and the methods described herein may alsobe used with various components of a data monitoring and managementsystem such as the data monitoring and management system 300 illustratedin FIG. 3. In certain embodiments, the system 300 is an analytemonitoring and management system, such as a continuous glucosemonitoring management system. Although a continuous glucose monitoringsystem is specifically mentioned, it is contemplated that featuresdescribed herein may also be applicable to other medical monitoringdevice such as drug or medication delivery devices and the like.

Referring back to FIG. 3, the analyte monitoring system 300 includes asensor 301, a data processing and/or communication unit such as, forexample, a transmitter unit 302 coupleable to the sensor 301, and aprimary receiver unit 304 which is configured to communicate with thetransmitter unit 302 via a bi-directional communication link 303. Incertain embodiments, the communication link 303 may include an RFcommunication protocol, an infrared communication protocol, a Bluetoothenabled communication protocol, a wireless USB communication protocol, aZigBee communication protocol, a cellular communication protocol, aWi-Fi (IEEE 802.1 Ix) communication protocol, or an equivalent wirelesscommunication protocol which would allow secure, wireless communicationof several units (for example, per HIPPA requirements) while avoidingpotential data collision and interference.

Although not shown, it is contemplated that the sensor 301 and thetransmitter unit 302 may be configured as a single integrated unit suchas an on body patch device. In such embodiments, the integrated unit maywirelessly communicate with other components of the system 300 such asdescribed herein.

The primary receiver unit 304 may be further configured to transmit datato a data processing terminal 305 for evaluating the data received bythe primary receiver unit 304. Moreover, the data processing terminal305 in one embodiment may be configured to receive data directly fromthe transmitter unit 302 via a communication link which may optionallybe configured for bi-directional communication. Accordingly, transmitterunit 302 and/or receiver unit 304 may include a transceiver.

Also shown in FIG. 3 is an optional secondary receiver unit 306 which isoperatively coupled to the communication link and configured to receivedata transmitted from the transmitter unit 302. Moreover, as shown inthe Figure, the secondary receiver unit 306 is configured to communicatewith the primary receiver unit 304 as well as the data processingterminal 305. Indeed, the secondary receiver unit 306 may be configuredfor bidirectional wireless communication with each or one of thetransmitter unit 302, the primary receiver unit 304 and the dataprocessing terminal 305. In one embodiment of the present disclosure,the secondary receiver unit 306 may be configured to include a limitednumber of functions and features as compared with the primary receiverunit 304. As such, the secondary receiver unit 306 may be configuredsubstantially in a smaller compact housing or embodied in a device suchas a wrist watch, pager, mobile phone, PDA, for example. In certainembodiments, the secondary receiver unit 306 may be configured with thesame or substantially similar functionality as the primary receiver unit304. Each receiver unit may be configured to be used in conjunction witha docking cradle unit, for example for one or more of the following orother functions: placement by bedside, for re-charging, for datamanagement, for night time monitoring, and/or bidirectionalcommunication device.

In one aspect sensor 301 may include two or more sensors, eachconfigured to communicate with the transmitter unit 302. Furthermore,only one transmitter unit 302, communication link 303, and dataprocessing terminal 305 are shown in the embodiment of the monitoringsystem 300 illustrated in FIG. 3. However, it will be appreciated by oneof ordinary skill in the art that the analyte monitoring system 300 mayinclude one or more sensors, multiple transmitter units 302,communication links 303, and data processing terminals 305. Moreover,within the scope of the present disclosure, the analyte monitoringsystem 300 may be a continuous monitoring system, or semi-continuous, ora discrete monitoring system. In a multi-component environment, eachdevice is configured to be uniquely identified by each of the otherdevices in the system so that communication conflict is readily resolvedbetween the various components within the analyte monitoring system 300.

In one embodiment of the present disclosure, the sensor 301 isphysically positioned in or on the body of a user whose analyte level isbeing monitored. The sensor 301 may be configured to continuously samplethe analyte level of the user and convert the sampled analyte level intoa corresponding data signal for transmission by the transmitter unit302. In certain embodiments, the transmitter unit 302 may be physicallycoupled to the sensor 301 so that both devices are integrated in asingle housing and positioned on the user's body. The transmitter unit302 may perform data processing such as filtering and encoding on datasignals and/or other functions, each of which corresponds to a sampledanalyte level of the user, and in any event transmitter unit 302transmits analyte information to the primary receiver unit 304 via thecommunication link 303. Additional detailed description of thecontinuous analyte monitoring system and its various components areprovided in but not limited to: U.S. Pat. Nos. 6,134,461, 6,175,752,6,121,611, 6,560,471, 6,746,582, and U.S. Patent Publication No.2008/0278332 filed May 8, 2008 and elsewhere, the disclosure of each ofwhich are incorporated by reference for all purposes.

FIG. 4 illustrates a block diagram of an upgrade and recovery systemaccording to embodiments of the present disclosure. In certainembodiments, the system 400 includes, but is not limited to, a device401, a computing device 402, and a server 403. As will be appreciated byone of ordinary skill in the art, the upgrade recovery system 400 may beused with the health monitoring device 100 (FIG. 1) and componentsthereof and/or various components of the data monitoring and managementsystem 300 (FIG. 3). As such, as used herein, the term “device,” such asdevice 401 for example, may refer to the health monitoring device 100,the transmitter unit 302, the primary receiver unit 304, and/or thesecondary receiver unit 306.

In certain embodiments, the computing device 402 may be a user'spersonal computer or laptop, for example. The computing device may alsocorrespond to a personal digital assistant, smart phone, cell phone,tablet computer, iPad, or other such portable computing device. Thecomputing device 402 may be configured to store and/or further analyzeeither user-entered data (such as blood glucose data and/or continuouslymonitored glucose data) measured from the device 401 or data that wastransmitted to the device 401 via a wireless or wired connection. Incertain embodiments, web-based application software and other clientsoftware may be stored in memory of the computing device 402 and may beexecuted by one or more processors of the computing device 402. Suchsoftware may enable a user to view analyte related data, availablesoftware and firmware upgrades for the device 401, as well as variousavailable applications for the device 401.

In certain embodiments, server 403 is configured to provide upgrades forthe device 401 and/or the computing device 402. The upgrades to thedevice 401 and the computing device 402 include software upgrades, dataupgrades, and firmware upgrades. The server 403 is further configured tostore and/or analyze and process data obtained from device 401 andcomputing device 402 and transmit the received data to another computingdevice (not shown) such as, for example, a computing device of ahealthcare provider. Other external components and/or devices (notshown) may be connected to server 403. Additional description forexemplary upgrade and/or recovery systems, such as the system 400 ofFIG. 4, are provided in, for example, U.S. Provisional Application No.61/184,234, entitled “Failure Recovery Methods of Corrupted Device OrDuring Software Downloads and Preservation of User Data andManufacturing Data”, filed on Jun. 4, 2009, the disclosure of which isincorporated herein by reference in its entirety for all purposes.

In certain embodiments, communication links 410, 420, and 430 mayrespectively connect the device 401 and computing device 402; device 401and server 403; and computing device 402 and server 403. Thecommunication links 410, 420, and 430 may include one or more of an RFcommunication protocol, an infrared communication protocol, a Bluetoothenabled communication protocol, a Wireless USB communication protocol, aZigBee communication protocol, a cellular communication protocol, aWi-Fi (IEEE 802.1 Ix) communication protocol, an equivalent wirelesscommunication protocol, and the like.

One or more components of the upgrade and recovery system 400 mayfunction to perform various and multiple upgrade and recovery operationsrelated to software and data upgrades, recovery, and/or preservation. Incertain embodiments, system may perform one or more routines fordownloading data and/or software to a device, such as device 401 asdescribed below in conjunction with the flowchart of FIG. 5.

Referring to FIG. 5, communication between a medical device, such asdevice 401 (FIG. 4), and at least one remote computing device, such ascomputing device or server 402 or server 403, is established (501). Incertain embodiments, communication is established through communicationlinks 410 or 420.

In one aspect, the device 401 includes a first memory for storing dataand/or software algorithm or routines for execution by one or moremicroprocessors to upgrade executable code for operation of the device401 and to verify the integrity of the code and/or associateduser-configurable and manufacturing data (adapted to be used by theupgraded code). The device 401 further includes a second memory with amultiplicity of segregated areas for storage of different kinds of dataand/or software. In one embodiment, the first and/or second memory israndom access memory. In other embodiments, the first memory is volatilememory. In yet another embodiment, the second memory is non-volatilememory, which may be flash memory. In certain embodiments, the firstmemory and the second memory are non-volatile memory. Executable codethat is being executed on the device 401, as well as theuser-configurable and manufacturing data utilized by the executablecode, is stored in a first storage area of the second memory.

Referring still to FIG. 5, in certain embodiments, the device 401 (FIG.4) receives a command regarding the download of new executable code thatis to be processed or executed at the device 401 (502). The new code maybe for an upgrade to software being executed on the device 401, a newapplication programming interface (API) for the device 401, updatedfirmware for the device 401, or a new software application for thedevice 401. The upgrade command is initiated by the remote computingdevice 402 and communicated by the remote computing device 402 to thedevice 401. In certain embodiments, a processor of the device 401automatically initiates installation or downloading of the new codedirectly from the server 403 when it is determined an upgrade isavailable. In other embodiments, the download will not be initiateduntil a user confirms that the available upgrade is desired.

When the download is initiated, the existing (old) unpackeduser-configurable data and manufacturing data utilized in the currentsoftware version running on the device (stored in a first memory area ofthe second memory) is packed and copied with the current executable codeto a second storage area of the second memory of the device 401 (503).This data may then be uploaded to the computing device 402 running thesoftware upgrade module or may be uploaded directly to the server 403.

The uploaded old packed data is converted to be utilized by the new(upgraded) version of the software code. Once converted, the newsoftware code is downloaded to the device 401 as new (converted) datawith a new version of the code and is stored in the first memory of thedevice 401 (504). The server 403 may, according to an embodiment,perform the upload and download through client software running on theserver 403, an intervening device, such as, for example, the computingdevice 402, or directly on the device 401.

The integrity of the new converted data block and upgraded code storedon the first memory of the device is verified (505). The verificationmay include confirmation that the new data and code are not corrupt orthat the new data and code are compliant with device 401. The integrityverification is, according to an embodiment, performed by cyclicredundancy check (CRC). Although a cyclic redundancy check isspecifically mentioned, it is contemplated that other integrityverification processes including error detection and/or correction maybe employed to verify the new data and code.

If the verification of the new data and code is satisfactory, the new(converted) packed data and original software code are copied to a thirdstorage area of the second memory of the device 401 (506). As the new(converted) packed data is stored in the third storage area, the packeddata and code that is stored in the second storage area of the secondmemory of the device 401 is overwritten with the verified new data andcode.

If the verification of the new data and/or code is unsatisfactory, dueto corrupt data or data noncompliance, for example, the process may end.In certain embodiments, the new data and/or code, if corrupt, is neitherstored in the first nor second memory. The process may then repeat wherenew (converted) data and upgrade code are again downloaded to the device401 as described above.

When the download and copying are complete, in certain embodiments, aprocessor of the device 401 initiates a reset command to reset thedevice 401. Once the reset is complete, the device 401 attempts to usethe newly upgraded code and the new data (507). As the device isattempting to use the newly upgraded code, the packed (verified andconverted) data that is stored in the second area of the second memoryis unpacked to populate the first area of the second memory. If afailure occurs, the process stops and the processor of the device 401initiates a reset command (508). Upon recovery of the reset, the device401 reverts to use of the old (unconverted) data and original (not yetupgraded) code that was stored in the second storage area of the secondmemory.

In certain embodiments, the upgraded code may be associated with acritical update for the operation or functionality of the device 401(FIG. 4). In certain aspects, if the critical update is not installed onthe device 401, the device 401 may not function properly. For example,the critical update may correspond to a bolus calculation function orbolus delivery function of peripheral pump connected to the device 401.If the critical update is not installed on the device 401, an incorrectbolus dosage may be calculated and/or the pump may not deliver theexpected amount of insulin based on the calculation.

In certain aspects, if a failure occurs during the installation of thecritical update on the device 401, the processor of the device 401initiates a reset command and the device 401 resets. When the device 401recovers from the reset, the download and/or installation of thecritical update automatically restarts. In certain embodiments, when thedevice 401 recovers from the reset, the user of the device 401 may beprompted to reinitiate the download and/or installation of the criticalupdate. The prompt may be a message screen output on a display of thedevice 401, an audible alert, a tactile alert or a combination thereof.

In certain embodiments, when the device 401 recovers from the reset, thedevice reverts to the use of the old data and original code that wasstored in the second storage area of the second memory but thefunctionality or feature of the device 401 that corresponds to thecritical update will not be accessible by the user until the criticalupdate is installed. For example, if the critical update corresponds toa bolus calculation function, the user may not use the bolus calculationfunction until the critical update corresponding to the boluscalculation function is installed on the device 401. Although the boluscalculation function is not operational, other features andfunctionalities of the device 401 may still be functional. For example,although a bolus calculation function is not accessible by the user, atest strip port and blood glucose calculation function may beoperational on the device 401.

It is also contemplated that although the critical update may correspondto a particular feature of the device 401, all functionalities andfeatures of the device 401 may be non-functional. In such cases, amessage or alert screen may be output on the display of the device 401indicating that all features and functionalities of the device 401 arenon-functional and will remain non-functional until the critical updatehas been installed on the device 401. The user may then be prompted toreinitiate the download and/or installation of the critical update.

In yet another aspect, the functionality of the device 401 thatcorresponds to the critical update may have limited operationalcapabilities for a predetermined amount of time. For example, if thecritical update corresponds to medication delivery of the peripheralpump, the processor of the device may instruct the peripheral pump todeliver a predetermined amount of insulin for the predetermined amountof time. When the predetermined amount of time expires, the user may beprompted to reinitiate the download and/or installation of the criticalupdate.

In certain embodiments, the first memory of the device 401 also includesnon-user configurable data. Such non-user configurable data includes,for example, manufacturing data (e.g., circuit calibration information)that enhances or assists in the operation of the device 401. Thus, itmay be necessary or beneficial to receive updated or new non-userconfigurable data. For example, the updates or new data may be necessaryfor the code upgrade.

In certain embodiments, the non-user configurable data may be used toidentify the device 401 such as, for example, with a device serialnumber. Additionally, the non-user configurable data may also includedefault settings for the device 401 or a current software version of thedevice 401. It may be desirable to keep the default settings of thedevice 401 intact in case the downloading of new non-user configurabledata fails or previously-used non-user configurable data has operationalproblems. Because the non-user configurable data is stored, this datamay be used to restore the settings of the device 401 should anyproblems occur. In certain embodiments, the restoration of the defaultsettings may occur automatically upon receipt of the non-userconfigurable data or upon a user-initiated or remote-initiated command.

FIG. 6 is a flow chart illustrating a method for use in one or moreembodiments of the present disclosure, for recovering non-userconfigurable data used by a device, such as, for example device 401(FIG. 4), in which such data has been corrupted or is no longer present.Referring to FIG. 6, the non-user configurable data, which is specificto the device 401, is stored in a database on a remote server, datastorage terminal, or other computing device (601). As discussed above,the non-user configurable data may be manufacturing-configured data thatassists in or supplements the operation of the analyte monitoringdevice. In other embodiments, the non-user configurable data isassociated with a serial number that identifies the device 401, acurrent software version running on the device 401 and/or defaultsettings of the device 401.

Still referring to FIG. 6, electronic data communication between theremote server, the data storage terminal or the computing device and thedevice 401 is established (602) and the serial number for the device 401is transmitted to the server, the data storage terminal or the computingdevice (603). Such transmission may be initiated by a user of the device401 upon experiencing, for example, a malfunction or problem with thedevice 401. The user may provide the serial number through a userinterface of the device or through a user interface on a device that isin communication with the device 401. In certain embodiments, the device401 automatically transmits the serial number based on variousperformance indicators such as, for example, when a failure of thedevice 401 is detected.

Upon receipt of the serial number, the remote server, the data storageterminal, or the remote computing device transmits the stored non-userconfigurable data to the device 401 (604). The transmission of the datamay be automatically performed upon receipt of the serial number, as areceipt of the serial number may indicate that the device 401 requiresthe data. In certain embodiments, transmission of the stored non-userconfigurable data may be transmitted only when the serial number isreceived with an appropriate request to transmit the data.

As previously discussed, the non-user configurable data may identify thedevice 401 and may include default settings for the device 401,including the most recent software and firmware versions that wererunning on the device 401. When the default settings are received, thedevice 401 may use the default settings to restore the device to itsfunctionality prior to any operational problems that may have occurred.In certain embodiments, transmission of the stored non-user configurabledata to the device 401 from the server, the data storage terminal or thecomputing device may cause the default settings to be automaticallyrestored on the device 401. The restoration of the default settings maybe processed by the remote server, the data storage terminal, or othercomputing device through a corresponding tool or software componentrunning on the corresponding device.

FIG. 7 illustrates a routine for transferring user configurable datafrom a first device to a second device according to embodiments of thepresent disclosure. The routine described herein may be used when thefirst device ceases to work or use of another device is desired (e.g.,when a physician prescribes use of a different device). The methodroutine described below may also be used to transfer applications andother downloaded content from one device to another. In certainembodiments, the method may be used to transfer data from the firstdevice to the second device even if the devices are not related or servedifferent functions.

Referring to FIG. 7, electronic data communication is establishedbetween the first device and a remote computing device (701). In certainembodiments, the connection may be a wired or wireless connection suchas described above. In further embodiments, when the communication linkis established, the first device may send an identifier, such as, forexample a serial number to identify the type of the first device and/ora current software version being executed on the device. This data maybe sent automatically or in response to a request from the remotecomputing device. When the first device has been identified, userconfigurable data is uploaded from the first device to the remotecomputing device (702). In certain embodiments, the remote computingdevice is a server. In other embodiments, the remote computing devicemay be a personal computer, laptop, personal digital assistant, smartphone, tablet computer, or other such computing device.

The specific data that is uploaded may be dictated by either the firstdevice or the remote computing device. For example, if some of the datato be uploaded was recently uploaded in the past and the data has notbeen changed, the data need not be uploaded again as it is duplicatedata. In certain embodiments, if some of the data to be uploaded wasreceived and/or stored on the device prior to a threshold time limit(e.g., 6 months in the past) the data may no longer be needed. Further,data transferred from one device may not be compatible with the seconddevice. In such cases, the unneeded data will not be uploaded to theremote computing device.

Still referring to FIG. 7, once the data from the first device has beenuploaded to the remote computing device, electronic data communicationis established between the second device and the remote computing device(703). As discussed above, the electronic data communication may be awired or wireless connection. Further, the established communicationbetween the second analyte monitoring device and the remote server neednot be direct but may be routed through other servers and/or variousdevices. In certain embodiments, when a connection is establishedbetween the second device and the remote computing device, the seconddevice may send either automatically, or in response to a request fromthe remote computing device, an identifier that may be used to identifythe device and/or a current software version running on the device. Whenthe second device has been identified, the data that was uploaded fromthe first device is converted for use on the second analyte monitoringdevice (704).

When the data has been converted, the converted data is downloaded andstored on the second device (705). In certain embodiments, thedownloaded data is stored in a first memory of the second device. Incertain embodiments, the download operation may be performed by asoftware upgrade tool running on a computing device connected to thesecond device. In certain embodiments, the remote computing deviceperforms the download through client software running on a computingdevice that connects to the second device. In other embodiments, thesoftware upgrade tool may be incorporated directly into the seconddevice.

Referring back to FIG. 7, once the data has been stored on the seconddevice, the integrity of the stored data is verified (706). Theverification may serve to confirm that the stored data is not corruptedor that if the data was converted, the data is compliant with the seconddevice. In certain embodiments, the integrity verification may beperformed by cyclic redundancy check (CRC) or other integrityverification processes.

In certain embodiments, when the data stored on second device has beenverified, a copy of the data is stored on a second memory of the secondmemory device (707). In certain embodiments, the remote computing devicemay direct a computing device connected to the second device to performthe copying operation through client software running on the connectedcomputing device. In other embodiments, the data copying may beperformed on the second device itself without the need for furtherinstructions from another computing device. When the data has beentransferred to the second memory of the second device, the second devicemay operate based on the stored data. In certain embodiments, the seconddevice continues to operate based on its previously-stored data untilfurther operations/instructions are performed in which the new data isneeded.

If it is determined that the converted, stored data has not beenverified (706), the method returns to 704 or 705 to convert the uploadeddata or to download the converted data, respectively, as one of theseoperations may have initially failed or been processed incorrectly.According to the above-described embodiments, a user is advantageouslyable to recover device functionality from a server or another locationrather than replace the device, and the recovery may conveniently bedone from the user's home or other preferred location. Thus,installation of corrupted software, through, for example, a softwareupgrade tool running on a user's computing device, may conveniently beresolved.

Moreover, during a software upgrade of a medical device, several pointsof failure exist that are recovered by the medical device and/or asoftware tool operating on a user's computing device. The recovery bythe medical device and/or software tool serves to consistently providethe user with a functioning device even if the software upgrade isunsuccessful. The points of failure may include, but are not limited to,(i) corruption of the software upgrade during download or uponrestarting of the medical device; (ii) data that is corrupt orinconsistent with the new software upgrade; (iii) communication failurebetween the computing device and the device or the server during thesoftware upgrade process; and (iv) device automatic recovery fromincorrect software or data.

To solve and/or alleviate the points of failure, the device may operateto correct its software, manufacturing data, and any user configureddata by using the saved version of the software and the data. Thus, thecommunication link between the computing device and the device, as wellas the communication link between the computing device and the server,is not necessary for the device to remain functional. Additionally, theuser of the device is able to perform software upgrades without relyingon a software manufacturer or other professional.

During a software upgrade on a device, it is important thatuser-configured data as well as manufacturing-configured data is notlost or corrupted. In certain embodiments, to protect the data, asoftware upgrade tool running on the user's computing device obtains thecurrent data for the current release of the software at the start of thesoftware upgrade process. Before the new software upgrade is initiatedon the device, converted user-configured and manufacturing-configureddata that is compliant with the new software is downloaded. The serverperforms the software upgrade as well as the data conversion to matchthe new software through client software running on the user's computingdevice that connects to the user's device. The user of the device isable to perform software upgrades while the user-configured andmanufacturing-configured data are preserved. Moreover, the data isconverted and used with the new software release.

For a software upgrade on a device, data is secured and/or preserved.Accordingly, the data is copied to a block and is later restored to thedevice. This operation reduces interaction between the device andcomputing device, thereby reducing the likelihood ofpoint-of-communication failure, and also allows for a user to easilyperform software upgrades on the device. Additionally, a hospital orclinic can perform software upgrades or upload user data from one deviceand download it to another device.

FIG. 8 illustrates a routine for upgrading a medical device based ondetecting a connection with a peripheral device according to embodimentsof the present disclosure. In certain embodiments, the routine describedbelow may be used with a medical device, such as, for example, a healthmonitoring device 100 (FIG. 1), a primary receiver unit 304 (FIG. 3) orsecondary receiver unit 306 (FIG. 3).

Referring to the Figure, when a peripheral device is connected to, anddetected by, the medical device (801), the identity of the peripheraldevice is determined (802). In certain embodiments, the peripheraldevice is a device having functionality that was not, or is not,currently provided on the medical device. For example, if the medicaldevice does not have a test strip port, a peripheral test strip port maybe connected to the medical device. Thereafter, as test strips areinserted into the peripheral test strip port connected to the medicaldevice for analyzing blood samples, the medical device may be configuredto analyze, display and store data corresponding to blood glucose levelsof the blood sample. In another example, the peripheral device may be apump for delivering a medication, such as, for example insulin. Once thepump for delivering the medication is connected to the medical device,data regarding the medication, such as, for example, medicationadministered, the type of medication administered, etc., may be storedand/or displayed on the medical device. Although a test strip port and apump for delivering a medication are specifically mentioned, it iscontemplated that various other peripheral devices may be used inconjunction with the medical device. For example, and as will beexplained in greater detail below, a peripheral device may be personaldigital assistant, cellular telephone, tablet computer or other suchdevice.

In certain embodiments, the peripheral device is physically connected tothe medical device. Examples include connecting the peripheral device toa USB port of the medical device either directly or indirectly using aUSB cable. Within the scope of the present disclosure, other physicalconnections may be employed or used such as, for example, but notlimited to RS-232 connection, serial data connection, IEEE 1394 dataconnection, Ethernet data connection, or one or more combinationsthereof. In other embodiments, the connection between the peripheraldevice and the medical device may be made using an RF communicationprotocol, RFID communication protocol, an infrared communicationprotocol, a Bluetooth enabled communication protocol, an IEEE 802.1 Ix(WiFi) wireless communication protocol, wireless USB communicationprotocol, cellular communication protocol, Zigbee communicationprotocol, or an equivalent wireless communication protocol.

When a wireless connection protocol is used, a user of the medicaldevice may need to prompt the medical device to search for and detect aspecific peripheral device from a predetermined or pre-populated list ofperipheral devices supported by the medical device. Once a particularperipheral device has been selected by the user using for example a userinterface, the medical device may require that the peripheral device bebrought within a predetermined range of the medical device. When theperipheral device is brought within the predetermined range, acommunication link may be established between the two devices. In yetanother embodiment, the user may manually enter an identification numberor serial number of a particular peripheral device into the medicaldevice and when a peripheral device having that serial number is withina certain predetermined range, the communication link is established. Incertain embodiments, the medical device may be configured to onlyattempt to connect to peripheral devices that come within apredetermined range of the medical device (e.g. 3 feet or less, 2 feetor less, etc.). As a result, the medical device will not attempt toconnect to peripheral devices that are not owned by the user or attemptto connect to a peripheral device that the user did not intend to beconnected to the medical device.

Referring back to the Figures, when the medical device has detected aconnection to the peripheral device, the connected peripheral device isidentified (802) using a serial number or other such identifier. Asdiscussed above, the peripheral device may be physically connected tomedical device, such as, for example, being connected directly to a USBport on the medical device or connected via a USB cable. In certainembodiments, the peripheral device may be wirelessly connected to themedical device. When the connection is established, the peripheraldevice is identified using a serial number of the device, a portion ofthe serial number of the device or other such identifier that maydistinguish the peripheral device from another peripheral device. Incertain embodiments, and as discussed above, the peripheral device isidentified by a user prior to a connection being established.

When the serial number or other identifier is received, a processor ofthe medical device compares the received serial number of the peripheraldevice, or portions thereof, to a database of supported peripheraldevices stored in a memory the medical device to properly identify theconnected peripheral device. The peripheral device is identified whenthe serial number or identification number of the peripheral devicematches a serial number or identification number of a type of peripheraldevice stored in the database. In certain embodiments, the medicaldevice is configured to wirelessly connect to a remote computing devicesuch as for example, a server, and request identification of theperipheral device based on the received identification number or serialnumber.

In certain embodiments, the peripheral device may be selected from auser interface of data management software being executed on a computingdevice and configured to interact with the medical device. As will bedescribed in greater detail below, the data management software may beused to receive data from the medical device, print various reportsbased on the received data, and share the received data with healthcareproviders or other caretakers over a network connection. In certainembodiments, when the medical device is connected to the computingdevice on which the data management software is being executed, a usermay manually select a peripheral device from a list of available orsupported peripheral devices on a user interface screen of the datamanagement software and request that the medical device be upgraded tosupport the selected peripheral device.

Referring back to FIG. 8, when the peripheral device has beenidentified, an application programming interface (API) associated withthe identified peripheral device is also identified (803). Anapplication programming interface enables the medical device to interactwith software of the peripheral device. For example, if the peripheraldevice is a pump for dispensing medication, installation of the API onthe medical device may permit the medical device to act as a pumpcontroller to control medication delivery, calculate amounts ofmedication to be delivered, and receive and display data correspondingto the medication delivered by the pump. In certain embodiments, the APIis identified based at least in part, on the serial number oridentification number of the peripheral device that was connected to themedical device. In certain embodiments, a user may select a particularAPI from a pre-populated list of available APIs, such as, for example, alist of APIs on a user interface screen of the data management software.

Once the appropriate API has been identified, the API is downloaded andinstalled on the medical device (804). In certain embodiments, theperipheral device API may be stored or located on a computer, server,and/or network located external to medical device. As such, the medicaldevice may connect to the computer or server on which the identified APIis stored to download the identified API. In certain embodiments, thesoftware for the identified API may reside, for example, in a memory ofthe medical device. Thus, when the peripheral device is connected to themedical device and identified, a processor of the medical deviceautomatically, or based on user verification, retrieves the identifiedAPI from memory and install the identified API software. In yet anotherembodiment, the API software for the peripheral device may reside in amemory of the peripheral device. Thus, when the connection between theperipheral device and the medical device is established, a processor ofthe medical device may issue a command to download and install the dataand/or software from the peripheral device thus enabling the medicaldevice to communicate with and/or control the peripheral device.

In certain embodiments, the peripheral device is configured to reprogramor update the medical device such that the medical device cancommunicate with the peripheral device. For example, when a peripheraldevice is connected to the medical device for the first time and themedical device detects the connection, a processor of the medical deviceissues a command to download and install the data and/or software storedon the peripheral device to the medical device.

In certain embodiments the peripheral device is a non-medical peripheraldevice, such as, for example a cellular telephone, personal digitalassistant, tablet computer and the like. In such embodiments, themedical device may download and use APIs for the non-medical peripheraldevices in the same manner as discussed above. Once the API isinstalled, the medical device is configured to transmit data, such as,for example, blood glucose readings, to the identified peripheral deviceand a processor of the medical device instructs the peripheral device totransmit the data to healthcare provider. For example, if the peripheraldevice is a cellular telephone or personal digital assistant, themedical device, can instruct the cellular telephone to send a SMSmessage or MMS message to the user's healthcare provider with the bloodglucose data or other such data contained in the body of the message.

As will be appreciated by one of ordinary skill in the art, in someembodiments, the API may be downloaded and installed on the medicaldevice in accordance with the method described above with reference toFIG. 5. Further, it is contemplated that the upgrades and downloads willnot substantially affect the functionality and performance of themedical device while the user is actually using the medical device totest blood glucose values and view glucose related data. In certainembodiments, if a user is currently using the medical device, such as,for example, performing a blood glucose test, or continuous glucose datais being received at a receiver unit, downloading and/or installation ofthe upgrade or software is suspended until the user imitated action iscomplete.

FIG. 9 is a flow chart illustrating a method for updating a medicaldevice according to embodiments of the present disclosure. In certainembodiments, the medical device is a health monitoring device 100 (FIG.1), a primary receiver unit 304 (FIG. 3) or a secondary receiver unit306 (FIG. 3). The method for updating the medical device begins asvarious events are detected by a processor of the medical device. Eachof the events are then stored and tracked in a device history log (901)that is stored in a memory of the medical device. In certainembodiments, the device history log stored on the medical device isassociated with the identification number that corresponds to themedical device.

In certain embodiments, the device history log is configured to trackdata corresponding to the treatment of a health condition of a user suchas, for example, diabetes. Such data may include the frequency ofinsulin doses, the type and brand of insulin used, the manufacturer ofthe insulin, frequency of blood glucose measurements, type of teststrips used in blood glucose measurements, alarms and alerts output bythe medical device and other data related to the treatment of diabetes.

In certain embodiments, the device history log also tracks updates tothe firmware and/or software of the medication device as well as currentversions of the firmware and/or software being executed on the medicaldevice. Each time the medical device is altered or updated (e.g., newfirmware version, software version, peripheral device connection, etc.),the update information is stored in the device history log of themedical device. The modifications to the device, which may include aportion of or all of the modifications to the device, may then betransmitted to a device history record (DHR) stored at a remotelocation, such as, for example, on a server or other remote locationsuch as device manufacturing site or at a server of a devicemanufacturing site, accessible via a network. In certain embodiments,server may contain device history logs of multiple devices. Thus, eachrecord or device history log in the device history record has a uniqueidentifier that corresponds to a particular medical device (e.g.,identification number of the medical device). Therefore, when data froma particular device history log associated with a medical device istransmitted to the location where the device history record ismaintained, the data from the medical device is stored or updated in thedevice history recorded corresponding to the identified medical device.

The transmission of data from the device history log of thecorresponding device to the location where the device history record ismaintained may occur directly from the medical device using a wirelessor wired communication protocol to connect to the internet or other datanetwork. In certain embodiments, the data from the device history log istransmitted to the device history record location when the medicaldevice is connected to a computing device capable of connecting to anetwork or the internet. When the connection is established, the devicehistory log for that particular device, identified by the serial numberor partial serial number of the device, is updated in the device historyrecord to reflect the changes made to the medical device. Thus, amanufacturer of the device, a healthcare provider or other entity may beable to track the most recent updates to each device. In certainembodiments, the device history records includes the date of manufactureof the associated device, the quantity of manufacture of the associateddevice, the quantity of the manufactured device released fordistribution, acceptance records including indications that the devicesare manufactured in compliance with the device master record (DMR)associated with the manufactured device (e.g., medical device),identification label and labeling used for each production unitassociated with the device, and/or associated device identification andcontrol number.

In certain embodiments, the information in the device history record isused to assist a user in reverting to a previous version of softwareshould problems arise when upgrading the medical device and/or thecomputing device. Because data in the device history log is uploaded andstored in the device history record, in certain embodiments, an upgradeto the medical device may only occur when a connection to a network hasbeen established either through the medical device being connected to acomputing device having a network connection or when the medical deviceis directly connected to a network.

In certain embodiments, the device history log is also configured totrack occurrences of data synchronization between the medical device anda data management software on a computing device, types of peripheraldevices, if any, that have been connected to the medical device andcorresponding dates, times, and duration of each peripheral deviceconnected, the application programming interfaces installed on themedical device, the frequency at which the identified peripheral deviceshave been used, and other such data. Although specific events arediscussed, it is contemplated that the device history log may also beconfigured to record any and all events associated with the medicaldevice including system notifications such as, for example, low batteryindications, sensor failure, lost data packets, etc.

Referring back to FIG. 9, once the events have been stored in the devicehistory log, the stored events are uploaded (902) to data managementsoftware stored on a personal computer or other computing device. Incertain embodiments, each event stored in the device history log has aunique identifier. Therefore, each time the medical device is connectedto the computing device only events that have not been previouslyuploaded to the computing device and/or uploaded to the device historyrecord are uploaded. In certain embodiments, this determination is basedat least in part, on the unique identifier corresponding to each event.Thus, in determining whether to upload data corresponding to aparticular event, the unique identifier for the last uploaded event iscompared to each unique identifier of the potentially new events todetermine whether the event has already been uploaded. In certainembodiments, once the data from the device history log is stored on thecomputing device, the data is sent to an analysis module stored on aserver for analysis. In other embodiments, the data in the devicehistory log is uploaded directly to the analysis module stored on theserver from the medical device.

In certain embodiments, the analysis module analyzes the data in thedevice history log to determine trends of the user. In certainembodiments, the trend data may correspond to the frequency of insulindoses, the type and brand of insulin used at various points of the day,the frequency and type of user interface screens used by the user basedon detected alarm or event conditions, and the like.

After the data has been analyzed and trends identified, recommendationsregarding upgrades or updates to functionalities of the medical deviceand/or treatment of the health condition of the user may be made (903).In certain embodiments, the recommendations may correspond to variousavailable software upgrades for the medical device, optionalapplications corresponding to the treatment of the condition of the userand/or recommendations and special offers for consumable productsrelated to the treatment of the condition of the user. For example, asdiscussed above, the device history log may track the software versionof the medical device. Thus, when the medical device is synchronizedwith the data management software, the current software version of themedical device is compared against the most recent software versionavailable. If a more recent software version for the medical device isavailable, the user is notified about the update.

Similarly, as discussed above, the device history log may includeinformation to track which peripheral devices have been connected to themedical device. Based on this data, a recommendation is made to a userto download and install a particular application on the medical device.For example, if the peripheral device is pump for delivering amedication, a recommendation is made that the user should download aninsulin dose calculator application.

In certain embodiments, the device history log is maintained or updatedto track or update the frequency of medication doses such as insulin,the type of insulin, the brand of insulin and/or the manufacturer of theinsulin. This data may be used to form recommendations for the usercorresponding to various other types of insulin that may be available tothe user and be comparable to the brand or type of insulin currentlybeing used or most frequently used by the user. Further, the storedmedication data may be sent to various manufacturers of the medication.In turn, the user may receive special discounts, incentives orpromotions from the manufacturer for continually purchasing and/or usingthe particular brand of insulin. In yet other embodiments, a user mayreceive a recommendation for another brand of insulin from a differentmanufacturer including incentives, discounts and promotions forswitching brands.

In certain embodiments, the device history log may be updated to trackvarious other events that are recorded on the medical device. Forexample, the device history log of the medical device is updated tostore various exercise events and/or meal times of the user. The devicehistory log may also be updated based on which user interface screensare used most frequently by a user. As this data is analyzed and trendsare identified, recommendations are presented to the user as to whichapplications the user may be interested in. For example, one applicationavailable for download from a network location may be an applicationconfigured to calculate caloric intake of various food items consumed bythe user.

In certain embodiments, executable or software applicationrecommendations may be made to the user based on previously downloadedapplications. For example, one application may correspond to an insulindose calculator application. Because the user downloaded this particularapplication, a user may be presented with available applications thatcorrespond to or are related with the insulin dose calculatorapplication on the network page. For example, the user may be presentedwith an alternative insulin dose calculator application oralternatively, a consumable resource tracker application configured totrack amounts of insulin or test strips remaining in a user's inventory.

In certain embodiments, the available applications and incentives may bestored on a server and displayed on a webpage hosted by the server andaccessible by the user. When a user identifies a particular application,incentive or the like, the user may select to download the desiredapplication or incentive. In other embodiments, the recommendations maybe sent via email, text message or other communication medium.

FIG. 10 illustrates a method for updating data management softwareaccording to embodiments of the present disclosure. In certainembodiments, the data management software is installed on a personalcomputer or other computing device and is designed to enable individualswith a health condition, such as diabetes, their care givers and/orhealthcare providers to track and analyze health related data receivedfrom a medical device. In certain embodiments, the data managementsoftware allows a user to upload test data or other data from a medicaldevice, view and print graphs and reports to assist with healthmanagement, and share data over a network with a healthcare provider. Incertain embodiments, the software may also enable a healthcare providerto make updates to the medical device, change treatment plans, and/orchange various settings associated with the medical device, such as, forexample, minimum and maximum analyte thresholds levels, alarms andalerts associated with monitored analyte levels and the like.

To upload data from a medical device, a USB or serial cable connectionor wireless connection may be used to connect the medical device to acomputing device, such as a personal computer, on which the datamanagement software is installed. Once the medical device has beenconnected, the data may be uploaded and stored on the computing device.In certain embodiments, data from the medical device may be wirelesslyuploaded to the computing device using a Bluetooth connection or otherwireless connection. If the data management software has not beeninstalled on the computing device, the computing device downloads thedata management software directly from the medical device and the datamanagement software is installed on the computing device. Once the datamanagement software has been installed on the computing device, datastored on the medical device may be uploaded to the computing deviceusing a wired or wireless connection.

Referring back to FIG. 10, each time a medical device is connected tothe computing device executing the data management software, the medicaldevice is identified (1001). In certain embodiments, the medical deviceis identified by a serial number of the medical device, a partial serialnumber of the medical device or other such identifier, such as, forexample, a user selected name of the medical device (e.g., “MyDevice”).When the medical device is identified, the medical device is associatedwith a particular user profile stored in a memory of the computingdevice and accessed by the data management software. As data is uploadedfrom the medical device to the computing device, the associated data ofthe user stored in the memory of the computing device is updated. If themedical device cannot be associated with a user, a new user may be addedto the data management software and associated with the medical deviceor the medical device may be assigned to an existing user.

Referring back to FIG. 10, when the medical device has been identified,the data management software receives user initiated updates for theidentified medical device and/or changes to various settings of theidentified medical device (1002). In certain embodiments, the updatesand settings are selected and changed from a user interface section ofthe data management software and propagated to the medical device. Asdiscussed, the changes or updates may include updates to a treatmentplan or updates to settings of the device such as, for example, alarmsettings, times of meals, including pre-meal times and post meal times,changes to minimum and maximum threshold amounts for various analytelevels, etc. Additionally, a user may update settings directly on themedical device.

As the updates to the user's treatment plan are received and/or newsettings are applied, a processor of the computing device executes thedata management software to track each change made to the medicaldevice. Additionally, the data management software may be configured totrack the order in which the changes are made. In certain embodiments,the tracked data is associated with the identified medical device and/orthe user associated with the identified medical device (1003). Incertain embodiments, the processor of the computing device executing thedata management software analyzes the tracked data and determines whattrends, if any, exist in the tracked data.

In certain embodiments, a trend is identified if a particular routine orsequence of routines is performed in substantially the same ordersubstantially each time the identified medical device is connected tothe computing device, a user is selected from a plurality of users, orwhen a particular user accesses the data management software. Forexample, trend data may indicate that each time a particular medicaldevice (e.g., Device A) is connected to a computing device andidentified by the data management software, 75% percent of the time, theuser of the data management software navigates to a particular settingsscreen or other user interface display screen.

In other embodiments, a trend is identified if a particular routine orsequence of routines is performed in substantially the same order inresponse to a particular event being stored on the medical device suchas, for example, an output of an alert or detection of an alarmcondition (e.g., hypoglycemic alert, hypoglycemic alert etc.). Forexample, trend data may indicate that when an alarm or alert conditionis detected and output by the medical device, or when a predeterminednumber of alarm or alert conditions have been detected by the medicaldevice in a given time period, 85% of the time, a user navigates to aparticular settings screen or other user interface display screen of thedata management software.

Once the tracked data is analyzed and trends are identified, the datamanagement software is upgraded based on the trend data (1004). Incertain embodiments, the upgrade to the data management software mayconsist of placing an icon or shortcut on a home screen of the datamanagement software that when selected, presents to the user aparticular setting screen or user interface screen of the datamanagement software. In certain embodiments, the icon or shortcut may bespecific to the particular medical device that was most recentlyidentified. Thus, each time the particular device is identified, aprocessor of the computing device causes the icon or shortcut to beoutput on the home screen of the data management software. In certainembodiments, the icon or shortcut may be specific to a particular userof the data management software. Thus, when the user logs onto the datamanagement software, icons specific to that user are displayed. Incertain embodiments, multiple patients of a healthcare provider aretracked, and various icons or shortcuts may be associated with eachindividual patient profile depending on the trend data identified.

Continuing with the example from above, the trend data may indicate that75% percent of the time a user navigates to an analyte level thresholdsettings screen when a particular medical device is connected to thecomputing device. As a result, an icon or shortcut is displayed on ahome screen of the data management software that directs the userdirectly to the analyte level threshold settings screen.

Although trend data has been described above with reference to a singlesetting being changed, it is contemplated that trend data may be trackedand identified for multiple setting changes or multiple sequences ofevents. For example, if a second particular routine or sequence ofroutines is performed in substantially the same order after the firstparticular step or sequence of steps, an icon or shortcut directing theuser to a second display screen may be generated and displayed on thehome page of the data management software. In certain embodiments, thesecond icon or shortcut may be displayed simultaneously with the firsticon or shortcut. In other embodiments, the second icon or shortcut isdisplayed only after the first icon or shortcut has been selected. Instill yet other embodiments, the second icon or shortcut may bedisplayed on the user interface screen that the user navigated to as aresult of the user selecting the first icon or shortcut.

Additionally, although updates to treatment plans and various settingsare discussed, it is contemplated that trend data may identify aparticular display screen or sequence of display screens that arenavigated to when a particular medical device or user is identified. Forexample, a healthcare provider may navigate to a first display screenshowing a graph of continuous glucose levels over a predefined datarange 85% of the time a particular medical device is connected to thecomputing device and identified by the data management software. As aresult, when connection of a particular medical device to the computingdevice is detected, an icon or shortcut corresponding to the graphdisplay screen is generated and placed on the home page of the datamanagement software. If multiple display screens are accessed in aparticular order, icons or shortcuts may be generated and displayed in asimilar manner.

In certain embodiments, trend data and/or medical treatment plansassociated with one medical device and/or a user may be compared withtrend data and/or medical treatment plans from another medical deviceand/or user. If trend data associated with a first medical devicecorresponds to trend data associated with a second medical device and/oruser, shortcuts or icons displayed for one user may be recommendedand/or displayed when a second user is selected or when a medical deviceassociated with the second user is identified.

In certain embodiments, a similar icon or shortcut that was displayed ona home screen of the data management software may also be displayed on ahome screen of the medical device based on the trend data. Thus, a usermay access a particular display screen of the medical device in responseto an event in a similar manner as described above. For example, if auser navigates to a graph display screen immediately or substantiallyimmediately after testing a blood glucose level, an icon or shortcutassociated with the graph display screen is shown on the home screen ofthe medical device. Actuation of the icon or shortcut causes the graphdisplay screen to be rendered on the display of the medical device.

FIG. 11 is a flow chart illustrating a method for upgrading data and/orsoftware on a medical device and/or a computing device according toembodiments of the present disclosure. The data and/or software upgraderoutine on a medical device and/or a computing device is initiated whena medical device is connected to a computing device (1101). In certainembodiments, the medical device is a health monitoring device 100 (FIG.1), a primary receiver unit 304 (FIG. 3), or a secondary receiver unit306 (FIG. 3) and the computing device is a personal computer, laptop,tablet computer or the like. In certain embodiments, the medical deviceincludes a blood glucose monitor, a smart phone or personal digitalassistant having glucose monitoring capabilities, or other such handheldor computing device capable of having applications or programs installedon the handheld or computing device that enables a user to track bloodglucose levels or assist in the management of a disease. The connectionbetween the medical device and the computing device may be a wirelessconnection or wired connection.

When the medical device is connected to the computing device, adetermination is made by the computing device as to whether datamanagement software that supports the connected medical device has beenloaded onto the computing device (1102). In certain embodiments, aprocessor of the computing device instructs the operating system of thecomputing device to determine if data management software has beeninstalled on the computing device. In certain other embodiments, thecomputing device may detect a device transmission identifiercorresponding to the medical device. If a transmission identifier of themedical device is identified, a determination is made that the computingdevice is capable of communicating and interacting with the medicaldevice.

In certain embodiments, a processor of the medical device is configuredto determine if data management software has been loaded onto thecomputing device by checking a device history log stored on the medicaldevice. In certain embodiments, the device history log is configured tostore data corresponding to each computing device the medical device hasbeen connected to. Such a record can include an identifier correspondingto the computing device as well as a record of what software, if any,was installed on the computing device. If data management software isinstalled on the computing device that supports the connected medicaldevice, when the data management software is executed by the processorof the computing device, the processor issues instructions that causesthe computing device to access a network connection, compare a versionof the data management software installed on the computing device to amost current version of data management software available on thenetwork, and/or compare a version of the medical device softwareinstalled on the medical device to a most current version of the medicaldevice software available on the network to determine if upgrades areavailable (1104).

For example, when the processor of the computing device executes thedata management software, and the network connection is initialized, theversion of the data management software installed on the computingdevice is compared to the most current version of the data managementsoftware available on the network. Further, the version of the medicaldevice software installed on the medical device is compared to a mostcurrent version of the medical device software available on the network.In certain embodiments, the comparison may be made by checking thecurrent version of the medical device software of the medical deviceand/or the data management software of the computing device that isstored on the device history log to the version available on thenetwork. In certain embodiments, the device history log also includes arecord of which peripheral devices have been connected to the medicaldevice, the current version of the software on the peripheral device,and/or a version of the API that was installed on the medical device.Thus, a determination may also be made if an upgrade is available forsoftware corresponding to any peripheral devices that have beenconnected to or associated with the medical device.

If data management software is not installed on the computing device,data management software stored on the medical device is uploaded to thecomputing device and installed on the computing device (1103). When thenewly installed data management software is executed by a processor ofthe computing device, the version of the data management software iscompared against the most current data management software available onthe network (1104). If upgrades to the data management software are notavailable (1105) data may be transferred from the medical device to thecomputing device without performing any upgrades (1106).

If an upgrade is available for the data management software beingexecuted on the computing device, (1105), a user is presented with anoption to download any and all available upgrades on a user interfacescreen of the data management software (1107). It is also contemplatedthat available upgrades for the medical device software installed on themedical device and/or upgrades for a peripheral device may also bepresented to a user on a user interface of the data management software.Further, it is contemplated that upgrades may be availablesimultaneously for the medical device, the data management softwarerunning on the computing device, and a peripheral device. In such cases,the user may select to download one upgrade without downloading anotherupgrade or downloading all upgrades simultaneously or substantiallysimultaneously.

In cases where the user chooses to download an upgrade for the medicaldevice software installed on the medical device, the upgrade isdownloaded (1107) and stored in a memory of the medical device. Incertain embodiments, the download may be stored in volatile memory ornon-volatile memory of the medical device. When the download iscomplete, the newly downloaded software is checked for integrity (1108).In certain embodiments, the integrity of the download is verified usinga cyclic redundancy check (CRC). Thus, as the data is sent from thenetwork to the computing device, a CRC code is generated for each blockof data. The CRC code is sent with the block of data and received by themedical device. When the block of data is received and/or read by aprocessor of the medical device, the medical device generates a CRC codefor each received block of data and compares generated CRC code with thereceived CRC code. If the CRC codes match, the data is verified. Ifhowever, the CRC codes do not match, a data error is detected. Althougha cyclic redundancy check is specifically mentioned, it is contemplatedthat other error detection methods may be used including using paritybits, checksums, cryptographic hash functions and the like.

If the download is verified (1109), the downloaded upgrade to themedical device software is installed on the medical device (1110). Ifhowever, it is determined that the upgrade is corrupt (e.g., an error inthe downloaded code that would prevent the upgrade to the medical devicesoftware from installing or functioning properly when installed) (1109),the version of the medical device software currently being executed onthe medical device is copied in the memory of the medical device overthe downloaded upgrade to the medical device software (1111) to ensurethe medical device has a functional backup copy of the medical devicesoftware stored in memory. In certain embodiments, a processor of themedical device may issue a command to re-download the upgrade to themedical device software and verify the upgrade to the medical devicesoftware a second time. This process may repeat for a predeterminednumber of times or until the download is verified by the cyclicredundancy check.

When an upgrade to the data management software installed on thecomputing device is available, and the user chooses to upgrade the datamanagement software, the upgrade to the data management software isdownloaded and stored directly in a memory of the medical device (1107).In certain embodiments, the downloaded upgrade to the data managementsoftware is stored in volatile memory or nonvolatile memory of themedical device. When the upgrade to the data management software hasbeen downloaded, the integrity of the download is verified (1108). Incertain embodiments, the integrity of the download is verified using acyclic redundancy check as described above.

Referring still to FIG. 11, if the integrity of the download is verified(1109) the upgrade to the data management software is uploaded from themedical device and installed on the computing device (1110). In certainembodiments, the upgrade to the data management software remains storedon the medical device even after the upgrade to the data managementsoftware has been installed on the computing device. Therefore, when themedical device is connected to a different computing device that doesnot have data management software installed at the time the medicaldevice is connected, or the computing device does not have the mostcurrent data management software available, the most current datamanagement software can be uploaded to the computing device from themedical device and installed on the computing device.

If the downloaded upgrade to the data management software is notverified, the processor of the medical device may issue an instructioncausing a message screen, icon, and/or an audible notification to beoutput on the medical device, or the computing device, notifying theuser that the download was not verified. When the user acknowledges themessage screen or the icon, the user may select to download the upgradeto the data management software a second time. In certain embodiments,if the downloaded upgrade to the data management software is notverified, the processor of the medical device is configured to issue acommand to restart the download. In other embodiments, the processor ofthe medical device may track which data packets are corrupt at the timethe data packets are received and immediately or substantiallyimmediately request that a new data packet be transmitted.

If the upgrade to the data management software that was corrupted wasstored in temporary memory of the medical device, the upgrade to thedata management software is overwritten by the version of the datamanagement software that is currently being executed on the computingdevice to ensure the medical device has a working and verified versionof the data management software stored in memory. In certainembodiments, when the upgrade to the data management software is notverified, the user may connect the medical device to a computing devicewith a working copy of data management software currently installed andmay download the working copy of the data management software directlyfrom the computing device.

In aspects of the present disclosure, the upgrades or updates to dataand/or software discussed with respect to FIG. 11 are stored in thedevice history log which may be uploaded and stored in a device historyrecord maintained by the medical device manufacturer or other entity,and/or accessible by the medical device and/or other authorized devices.The device history record may enable the manufacturer to trace, track ormaintain updates or upgrades to the medical device and assist the userin troubleshooting the medical device should problems arise whenupgrading the medical device. Further, although data and/or softwareupgrades or updates are specifically discussed with respect to FIG. 11,it is contemplated that firmware upgrades may be performed using themethod described herein.

For example, in one embodiment as illustrated in FIG. 12A, a devicehistory record for a medical device 1201 is updated each time thesoftware or firmware or data is upgraded for that medical device 1201.For example, in one embodiment, the system and method for updating thedevice history record begins with connecting the medical device 1201 toa computing device 1202. The connection can be made wirelessly or wired,using any of the options disclosed herein, and the computing device 1202can be, for example, a personal computer, a laptop computer, a notebookcomputer, an iPad, a tablet computer, a cell phone, a smart phone, apersonal data assistant, a workstation, a server, a mainframe computer,a cloud computing system, or the like.

Once the connection is made between the medical device 1201 andcomputing device 1202, the medical device 1201 can send its serialnumber or identification number 1210 or the like to the computing device1202. In some embodiments, the medical device 1201 can send its serialnumber or identification number 1210 to the computing device 1202automatically without any prompting by the computing device 1202. Inother embodiments, the medical device 1201 can send its serial number oridentification number 1210 to the computing device 1202 in response to arequest by the computing device 1202. Similarly, in some embodiments,the medical device 1201 can send information regarding its currentsoftware version or current firmware version or current data version tothe computing device 1202, either automatically without any prompting bythe computing device 1202, or in response to a request by the computingdevice 1202. In some embodiments, the medical device 1201 storesinformation regarding its serial number, identification number, currentsoftware version, current firmware version and/or current data versionin a device history log, as further described above.

The computing device 1202 can check whether an upgrade is available forthe software and/or firmware and/or data currently on the medical device1201. For example, in some embodiments the computing device 1202 cansend the serial number or identification number and informationregarding the current software version or current firmware version orcurrent data version 1220 of the medical device 1201 to a server 1203.In other embodiments, the computing device 1202 can send only the serialnumber or identification number to the server 1203, and the server 1203can determine the software and firmware and data version on the medicaldevice 1201 by accessing a device history record (DHR) 1204 for themedical device 1201. In other embodiments, the computing device 1202 hasinformation regarding the latest software and firmware and data versionsand based on which, for example, can determine whether an upgrade isavailable. For example, in some embodiments, the computing device 1202can periodically check the server 1203 for upgrades to the software orfirmware or data for the medical device 1201 even when the medicaldevice 1201 is not connected. If upgrades are available on the server1203, the computing device can download the data and/or software and/orfirmware from the server 1203 to perform the upgrades to the data andsoftware and firmware of the medical device 1201.

In some embodiments, the device history record 1204, as previouslydescribed herein, can contain a history of all the software and firmwareand data versions that have been installed on the medical device 1201,including the currently installed software and firmware and dataversions. In some embodiments, as illustrated in FIG. 12B, the devicehistory record 1204 of the medical device 1201 can be stored on the sameserver 1203 that contains the data and software and firmware forupgrading the data and software and firmware on the medical device 1201.In this case, the server 1203 can request information from and updatethe device history record 1204 directly. In other embodiments, thedevice history record 1204 can be stored on a separate manufacturingsite server 1205, to provide convenient storage and access forcompliance with Food and Drug Administration regulations and/orinspections. In the case where the device history record 1204 is storedon a manufacturing site server 1205, the server 1203 can provide themanufacturing site server 1205 with the serial number or identificationnumber of the medical device 1201 and request information contained inthe device history record 1204 of the medical device 1201 whennecessary, and also instruct the manufacturing site server 1205 toupdate the device history record 1204 when necessary, such as when thedata or software or firmware of the medical device 1201 has beenupgraded.

The server 1203 can store data and software and firmware for upgradingthe data and software and firmware on the medical device 1201. Theserver 1203 can compare the latest data and software and firmwareversions on the server 1203 with the data and software and firmwareversions currently on the medical device 1201 and determine whether anupgrade is available. For example, if the latest data and/or softwareand/or firmware version on the server 1203 is newer than the data and/orsoftware and/or firmware version currently on the medical device 1201,then the server 1203 can determine that an upgrade is available, andsend data and software and firmware for upgrading the data and softwareand firmware 1230 on the medical device 1201 to the computing device1202.

The computing device 1202 can then upgrade the data and software andfirmware 1240 on the medical device 1201 using the data and software andfirmware provided by the server 1203. If the upgrade is successful, thecomputing device can notify the server 1203 that the upgrade wassuccessful 1250 by, for example, providing the server 1203 a messagethat the upgrade was successful along with the serial number oridentification number for device tracking purposes and a description ofthe upgrades applied.

The server 1203 can instruct the manufacturing site server 1205 toupdate the device history record 1204 by sending a message to themanufacturing site server 1205 that the upgrade was successful 1260along with the serial number or identification number of the medicaldevice 1201 and a description of the upgrades applied. In response, themanufacturing site server 1205 can update the device history record 1204to reflect that the data and/or software and/or firmware of the medicaldevice 1201 has been upgraded 1270. In some embodiments, the updating ofthe device history record 1204 is automatic, as described above. Inother embodiments, the device history record 1204 can be manuallyupdated.

In some embodiments, the medical device 1201 does not function or isdisabled until the medical device 1201 receives confirmation that thedevice history record has been updated. In this embodiment, themanufacturing site server 1205 notifies the server 1203 that the devicehistory record 1204 has been updated, while also providing the serialnumber or identification number of the medical device for trackingpurposes. In general, communications regarding a medical device 1201will contain a serial number or identification number for trackingpurposes. The server then notifies the computing device 1202 that thedevice history record 1204 has been updated, and the computing device1201 notifies the medical device 1201 that the device history record1204 has been updated, thereby unlocking the medical device 1201 andallowing it to function normally again.

FIGS. 13A and 13B are flow charts illustrating certain embodiments of asystem and method for updating a device history record 1307 when amedical device 1301 is upgraded with a medical device add-on module1302. When a medical device add-on module 1302 is added or combined 1310with a medical device 1301, the medical device with add-on module 1303can be considered a new medical device with functionality that isdifferent from either the medical device 1301 or add-on module 1302alone. The add-on module 1302 can be, for example, a peripheral deviceas described herein.

In order to update the device history record 1307 of the medical devicewith add-on module 1303, the medical device with add-on module 1303 canbe connected 1320 to a computing device 1304. The connection can bewired or wireless, as discussed herein. The computing device 1304 canbe, for example, a personal computer, a laptop computer, a notebookcomputer, an iPad, a tablet computer, a cell phone, a smart phone, apersonal data assistant, a workstation, a server, a mainframe computer,a cloud computing system, or the like.

The medical device with add-on module 1303 can have multiple serialnumbers and identification numbers, including, for example, the serialnumbers and identification numbers of the medical device 1301 and add-onmodule 1302, as well as, in some embodiments, a unique serial number andidentification number that is generated when the medical device withadd-on module is formed. The medical device with add-on module 1303 cansend the serial numbers and identification numbers to the computingdevice 1304, along with a message, in some embodiments, that the medicaldevice 1301 and add-on module 1302 have been combined. The computingdevice 1304 can then send 1330 all this information, including theserial numbers and identification numbers and message, to a server 1305.The server 1305 can then send 1340 all this information, including theserial numbers and identification numbers and message, to amanufacturing site server 1306, which can update 1350 the device historyrecord 1307 for the medical device with add-on module 1303 to indicatethat the medical device 1301 has been combined with the add-on module1302.

As illustrated in FIG. 13B, in some embodiments the server 1305 stores,accesses and modifies the device history record 1307 directly. In someembodiments, this means that the functions of the server 1305 andmanufacturing site server 1306 are combined in a single server.

In some embodiments, the medical device with add-on module 1303 does notfunction or is disabled until it receives confirmation that the devicehistory record 1307 has been updated. Confirmation can be passed fromthe manufacturing site server 1306 to the server 1305 to the computingdevice 1304 to the medical device with add-on module 1303, which will beactivated and functional upon receipt of the confirmation.

In some embodiments, the medical device with add-on module 1303 can haveits data and software and firmware updated as described herein.Depending on what upgrades are available, the data or software orfirmware of either the medical device 1301 portion or the add-on module1302 portion or both the medical device 1301 portion and the add-onmodule 1302 portion can be updated. In some embodiments, the medicaldevice with add-on module 1303 has its own data and software andfirmware which can be upgraded as described herein.

FIG. 14 is a flow chart illustrating a method for upgrading a medicaldevice when a peripheral device is connected to the medical deviceaccording to embodiments of the present disclosure. The method forupgrading the medical device begins when a peripheral device isconnected to the medical device (1401). In certain embodiments, themedical device is a health monitoring device 100 (FIG. 1), a primaryreceiver unit 304 (FIG. 3), or a secondary receiver unit 306 (FIG. 3)and the peripheral device is a test strip port, a pump for deliveringfluid or another device that may be used in conjunction with the medicaldevice. In certain embodiments, the peripheral device is a personaldigital assistant, cellular telephone, tablet computer or the like. Theconnection between the medical device and the peripheral device may be awireless connection, a wired connection, or the peripheral device may bephysically coupled to the medical device as described above.

When the peripheral device is connected to the medical device, aprocessor of the medical device determines if the medical devicesupports the peripheral device that has been connected to the medicaldevice and further, if data and/or software stored in a memory of theperipheral device is needed to enable the medical device to interactwith the peripheral device (1402). Such a determination may be made bychecking a device history log of the medical device to determine if thedetected peripheral device has previously been connected to the medicaldevice.

If identification data corresponding to an identifier of the peripheraldevice is stored the device history log of the medical device, adetermination may be made that the peripheral device that is connectedto medical device has been connected to the medical device prior to thecurrent connection. Thus, data and/or software stored on the peripheraldevice may not need to be uploaded and installed on the medical device.

In certain embodiments, a processor of the medical device determines aversion or type of data and/or software stored in a memory of theperipheral device. When the data and/or software stored on theperipheral device is identified, a check is performed on the medicaldevice, using the device history log for example, to determine if thedata and/or software stored on the peripheral device is loaded on themedical device. If the medical device is able to communicate andinteract with the peripheral device, the data and/or software that isstored on the peripheral device is not uploaded to the medical device.As such, the data and/or software of the medical device is not upgraded(1403).

If the medical device needs a data and/or software upgraded (e.g., thedata and/or software stored in the memory of the peripheral device) tointeract with the peripheral device, the current version of the medicaldevice data and/or software that is installed on medical device iscopied to and stored in a memory of the medical device (1404). Thecurrent version of the data and/or software of the medical device may bestored either in non-volatile memory or in volatile memory.

When the copy of the current version of the medical device data and/orsoftware has been stored in memory of the medical device, the integrityof the current version of the medical device data and/or software thathas been transferred and stored in the memory is checked to determine ifany errors exist in the current version of the data and/or software thatis stored in the memory of the medical device (1405). In certainembodiments, the medical device is configured to run a cyclic redundancycheck or other error detection method on the copied data and/orsoftware. If the current version of the medical device data and/orsoftware stored in the memory is corrupt (e.g., if there are any errorsin the copied version of the medical data and/or software that wouldprevent the medical device data and/or software from installing and/orrunning on the medical device), a processor of the medical device issuesan instruction for the current version of the medical device data and/orsoftware to be copied into memory a second time to overwrite thecorrupted version stored in the memory of the medical device. Theintegrity of the medical device data and/or software that has beencopied into the memory of the medical device is again checked using acyclic redundancy check or other error detection method. In certainembodiments, this process repeats until the integrity of the copiedmedical device data and/or software is verified.

When the integrity of the copied medical device data and/or software hasbeen verified, the data and/or software stored in the memory of theperipheral device is uploaded and installed on the medical device(1406). In certain embodiments, the newly added data and/or software isan application programming interface (API) that enables the medicaldevice to interact with data and/or software of the peripheral device.For example, if the peripheral device is a pump for dispensingmedication, the API permits the medical device to act as a pumpcontroller to control medication delivery, calculate amounts ofmedication to be delivered, and receive and display data correspondingto the medication delivered by the pump. In certain other embodiments,when the peripheral device is connected to the medical device, the dataand/or software of the medical device is upgraded to enable the medicaldevice to communicate with and interact with peripheral device.

When the peripheral device is disconnected from the medical device, themedical device is configured to automatically revert to the previousversion of the medical device data and/or software (1407). For example,when the peripheral device is disconnected from the medical device, theprocessor of the medical device executes the copied medical device dataand/or software stored in the memory of the medical device in place ofthe upgraded version of the medical device data and/or software.

Thus, the medical device is configured to run a first version of dataand/or software when a peripheral device is not connected to the medicaldevice, a second version of the data and/or software when a peripheraldevice is connected to the medical device, and revert back to the firstversion of the data and/or software when the peripheral device isremoved from the medical device. In certain embodiments, the upgrade andreversion of the data and/or software occurs automatically withoutprompting the user and without interrupting the overall functionality ofthe medical device.

In certain embodiments, when the medical device is connected to acomputing device as discussed above with respect to FIG. 11, and aperipheral device is connected to the medical device, the datamanagement software installed on the computing device is upgraded in thesame manner as was discussed above with respect to FIG. 11 to enable thedata management software to interact with and receive data correspondingto the peripheral device. Thus, if a software upgrade for the datamanagement software is stored on the peripheral device, the upgrade forthe data management software is uploaded and stored on the medicaldevice, and then uploaded and installed on the personal computingdevice.

In certain embodiments, the peripheral device can be connected directlyto the computing device and a determination made if an upgrade to thedata management software of the computing device is stored on theperipheral device. When the connection is established, the availabledata management software upgrade for the data management software isuploaded from the peripheral device and installed directly on thecomputing device. Additionally, the data and/or software of theperipheral device may be upgraded in a similar manner as the data and/orsoftware of the medical device as was discussed above with respect toFIG. 11. Thus, when the peripheral device is connected to the medicaldevice and when the combination of the peripheral device and medicaldevice are connected to the computing device, the data managementsoftware determines if an upgrade to the data and/or software of theperipheral device is available. In certain embodiments, thedetermination may be made by comparing a data and/or software version ofthe peripheral device that is stored in the device history log with themost recent data and/or software version available on the network. If anupgrade is available, the data and/or software is downloaded, stored ina memory of the medical device and/or the peripheral device, verified,and installed on the peripheral device.

In certain embodiments, the upgrades discussed with respect to FIG. 14are stored in the device history log and are tracked by the manufactureras explained above. Further, although data and/or software upgrades arespecifically discussed with respect to FIG. 14, it is contemplated thatupgrades to firmware are accomplished using the method described above.

One aspect of the present disclosure may include detecting operablecoupling of a first device with a second device, each of the firstdevice and the second device configured to perform a corresponding firstand second predetermined functions; configuring the second devicecoupled to the first device to operate as a third device, the thirddevice configured to perform a third predetermined function; updating adevice record corresponding to the third device based on the thirdpredetermined function; and storing the updated device record in amemory of the third device.

In one embodiment, one or more of the first predetermined function, thesecond predetermined function and the third predetermined function mayinclude one or more of blood glucose monitoring function, in vivocontinuous glucose monitoring function, an in vivo glucose monitoringfunction, medication dosage determination function, or monitored datalogging function.

In one embodiment, the first device may include an add-on moduleconfigured to physically and electrically connect to the second device.

In one embodiment, the device record may include associating a devicehistory record with the third device.

Another aspect of the present disclosure may include detecting, using amicroprocessor, an alteration or update to a medical device operationincluding one or more of an availability of a new firmware versionexecutable on the medical device, a new software version executable onthe medical device, a peripheral device connection, an addition offunction to the medical device, or a removal of function from themedical device; updating a device history log based on the detectedalteration or update to the medical device indicating the modificationto the medical device; and communicating the medical device modificationto a remote location including a manufacturing site of the medicaldevice.

In one embodiment, a device history record for the medical device at themanufacturing site may be updated based on the communicated modificationto the medical device.

In one embodiment, communicating the medical device modification to theremote location may include the manufacturing site of the medical deviceincludes one or more of a wired or a wireless communication between themedical device and the remote location.

In one embodiment, the modification to the medical device may include ahistory of data synchronization between the medical device and otherexternal devices or locations.

One embodiment may include storing the updated device history log in amemory of the medical device.

In one embodiment, updating the device history log is programmed tooccur in real time based on the detection of the alternation or updateto the medical device.

One aspect of the present disclosure may include a first deviceconfigured to perform a first predetermined function; a second deviceconfigured to perform a second predetermined function and configured tobe operably coupled to the first device, the second device configured tooperate as a third device configured to perform a third predeterminedfunction when operably coupled to the first device; and a device recordcorresponding to the third device; wherein the device record is updatedbased on the third predetermined function; and wherein the updateddevice record is stored in a memory of the third device.

In one embodiment, one or more of the first predetermined function, thesecond predetermined function, and the third predetermined functionincludes one or more of blood glucose monitoring function, in vivocontinuous glucose monitoring function, in vivo glucose monitoringfunction, medication dosage determination function, or monitored datalogging function.

In one embodiment, the first device may include an add-on moduleconfigured to physically and electrically connect to the second device.

One embodiment may include a device history record associated with thethird device.

One aspect of the present disclosure may include a medical devicecomprising a microprocessor; and a memory for storing instructionswhich, when executed by the microprocessor, causes the microprocessor todetect an alteration or update to a medical device operation includingone or more of an availability of a new firmware version executable onthe medical device, a new software version executable on the medicaldevice, a peripheral device connection, an addition of function to themedical device, or a removal of function from the medical device; adevice history log stored in the memory of the medical device, whereinthe device history log is updated based on the detected alteration orupdate to the medical device indicating the modification to the medicaldevice; and a remote location including a manufacturing site of themedical device configured to receive the medical device modification.

One embodiment may include a device history record for the medicaldevice at the manufacturing site updated based on the received medicaldevice modification.

One embodiment may include one or more of a wired or wirelesscommunication link between the medical device and the remote locationincluding the manufacturing site of the medical device.

In one embodiment, the modification to the medical device may include ahistory of data synchronization between the medical device and otherexternal devices or locations.

In one embodiment, the memory for storing instruction which, whenexecuted by the microprocessor, may cause the microprocessor to updatethe device history log in the memory of the medical device.

In one embodiment, the memory for storing instruction which, whenexecuted by the microprocessor, may cause the microprocessor to updatethe device history log in real time based on the detection of thealternation or update to the medical device.

One aspect of the present disclosure may include establishing aconnection between a peripheral device and a first medical device, theperipheral device having at least one functionality not supported by thefirst medical device; identifying the peripheral device; identifyingdata associated with the peripheral device, the identified datacorresponding to the at least one functionality not supported by thefirst medical device; updating the first medical device based on theidentified data; and controlling the at least one functionality of theperipheral device with the updated first medical device.

In one embodiment, the connection between the peripheral device and thefirst medical device may be a physical connection.

In another embodiment, the connection between the peripheral device andthe first medical device may be a wireless connection.

In one embodiment, the peripheral device may be identified based on aserial number of the peripheral device.

In another embodiment, the peripheral device may be identified based onuser selection.

In one embodiment, the identified data corresponding to the at least onefunctionality of the peripheral device may correspond to an applicationprogramming interface associated with the peripheral device.

In a further embodiment, the identified data corresponding to the atleast one functionality of the peripheral device may be stored on thefirst medical device.

In another embodiment, the identified data corresponding to the at leastone functionality of the peripheral device may be stored on theperipheral device.

In yet another embodiment, the identified data corresponding to the atleast one functionality of the peripheral device may be stored on acomputing device accessible by the first medical device.

In one embodiment, the peripheral device may be a test strip port.

In another embodiment, the peripheral device may be a pump fordelivering a medication.

In another embodiment, the peripheral device may be a computing device.

In one embodiment, the first medical device may be an analyte monitoringdevice.

Another aspect of the present disclosure may include detecting anoccurrence of a plurality of events associated with a medical device;storing the plurality of events associated with the medical device in anevent log, wherein each of the plurality of events associated with themedical device has a corresponding unique identifier; transmitting atleast one of the plurality of events associated with the medical deviceto a computing device; and receiving at least one update recommendationfor the medical device, wherein the at least one update recommendationis based, at least in part, on the transmitted at least one of theplurality of events associated with the medical device.

One embodiment may further include analyzing each of the plurality ofevents to determine trend data associated with each of the plurality ofevents.

One embodiment may further include receiving update recommendationsbased on the trend data.

In one embodiment, the event data may correspond to a medicationadministered to a user.

In another embodiment, the event data may correspond to an upgrade or anupdate of software of the medical device.

In another embodiment, the event data may correspond to an activity of auser of the medical device.

In one embodiment, transmitting the at least one of the plurality ofevents associated with the medical device may comprise transmitting theat least one of the plurality of events when it has not been previouslytransmitted.

One embodiment may further include updating the medical device using theat least one recommendation.

In one embodiment, the medical device is an analyte monitoring device.

Another aspect of the present disclosure may include establishing aconnection between a medical device and a computing device, thecomputing device having medical management software stored thereon;determining an identifier of the medical device; associating the medicaldevice with a user profile associated with the medical managementsoftware, wherein the medical device is associated with the user profilebased on the determined identifier of the medical device; updating atleast one setting of the medical device using the medical managementsoftware; and altering a home screen of the medical management softwarewhen a frequency of an update to the at least one setting of the medicaldevice exceeds a predetermined update frequency threshold.

In one embodiment, altering the home screen of the medical managementsoftware may comprise generating at least one icon associated with theat least one setting; and displaying the at least one icon associatedwith the at least one setting on the home screen of the medicalmanagement software.

One embodiment may further include rendering a display screen associatedwith the at least one icon when the at least one icon is selected by auser.

One embodiment may further include automatically rendering the alteredhome screen when a connection between the computing device and theidentified medical device is established.

One embodiment may further include automatically rendering a secondaltered home screen associated with an identified second device when aconnection between the computing device and the second identifiedmedical device is established.

In one embodiment, the medical device may be identified based, at leastin part, on a serial number.

One embodiment may further include altering a display screen of themedical device based on the altered home screen of the medicalmanagement software.

One embodiment may further include tracking a frequency of displayscreens accessed by a user when a connection between the medical deviceand the computing device is established; and altering the home screen ofthe medical management software when an access frequency of at least oneof a plurality of display screens exceeds a predetermined accessfrequency threshold.

One embodiment may further include generating at least one iconassociated with the at least one of the plurality of display screens;and displaying the at least one icon associated with the at least one ofthe plurality of display screens on the home screen of the medicalmanagement software.

One aspect of the present disclosure may include one or more processors;and a memory for storing instructions for access by the one or moreprocessors which when executed, establishes a connection between aperipheral device and a medical device, the peripheral device having atleast one functionality not supported by the medical device, identifiesthe peripheral device, identifies data associated with the peripheraldevice, the identified data corresponding to the at least onefunctionality not supported by the medical device, update the medicaldevice based on the identified data, and controls the at least onefunctionality of the peripheral device with the updated medical device.

In one embodiment, the connection between the peripheral device and themedical device may be a physical connection.

In another embodiment, the connection between the peripheral device andthe medical device may be a wireless connection.

In one embodiment, the peripheral device may be identified based on aserial number of the peripheral device.

In another embodiment, the peripheral device may be identified based onuser selection.

In one embodiment, the identified data corresponding to the at least onefunctionality of the peripheral device may correspond to an applicationprogramming interface associated with the peripheral device.

In one embodiment, the identified data corresponding to the at least onefunctionality of the peripheral device may be stored on the medicaldevice.

In another embodiment, the identified data corresponding to the at leastone functionality of the peripheral device may be stored on theperipheral device.

In another embodiment, the identified data corresponding to the at leastone functionality of the peripheral device may be stored on a computingdevice accessible by the medical device.

In one embodiment, the peripheral device may be a test strip portmodule.

In another embodiment, the peripheral device may be a pump fordelivering a medication.

In another embodiment, the peripheral device may be a computing device.

In one embodiment, the medical device may be an analyte monitoringdevice.

In one embodiment, the peripheral device may be a communication device,the communication device configured to communicate with a computingdevice.

In one embodiment, the communication device may be configured tocommunicate with the computing device through a wired connection.

In one embodiment, the communication device may be configured tocommunicate with the computing device through a wireless connection.

In one embodiment, the computing device may include one or more of apersonal computer, a laptop computer, a notebook computer, an iPad, atablet computer, a cell phone, a smart phone, a personal data assistant,a workstation, a server, a mainframe computer and a cloud computingsystem.

In one embodiment, the peripheral device may be configured to receivemedical data from the first medical device and medical data from asecond medical device.

One embodiment may further include instructions which when executedstore the medical data from the first medical device and the medicaldata from the second medical device in a log file.

In one embodiment, the first medical device and the second medicaldevice may include one or more of a blood glucose meter, a continuousglucose monitoring device, an oximeter, a pulse oximeter, a temperaturesensor, a respirometer, a heart rate monitor, an electrocardiogrammonitor, or a blood pressure monitor.

Another aspect of the present disclosure may include one or moreprocessors; and a memory for storing instructions for access by the oneor more processors which when executed detects an occurrence of aplurality of events associated with a medical device, stores theplurality of events associated with the medical device in an event log,wherein each of the plurality of events associated with the medicaldevice has a corresponding unique identifier, transmits at least one ofthe plurality of events associated with the medical device to acomputing device, and receives at least one update recommendation forthe medical device, wherein the at least one update recommendation isbased, at least in part, on the transmitted at least one of theplurality of events associated with the medical device.

One embodiment may further include analyzing each of the plurality ofevents to determine trend data associated with each of the plurality ofevents.

One embodiment may further include receiving update recommendationsbased on the trend data.

In one embodiment, the event data may correspond to a medicationadministered to a user.

In another embodiment, the event data may correspond to an upgrade or anupdate of software of the medical device.

In another embodiment, the event data may correspond to an activity of auser of the medical device.

In one embodiment, transmitting the at least one of the plurality ofevents associated with the medical device may comprise transmitting theat least one of the plurality of events when it has not been previouslytransmitted.

One embodiment may further include updating the medical device using theat least one recommendation.

In one embodiment, the medical device may be an analyte monitoringdevice.

Another aspect of the present disclosure may include, one or moreprocessors; and a memory for storing instructions for access by the oneor more processors which when executed establishes a connection betweena medical device and a computing device, the computing device havingmedical management software stored thereon, determines an identifier ofthe medical device, associates the medical device with a user profileassociated with the medical management software, wherein the medicaldevice is associated with the user profile based on the determinedidentifier of the medical device, updates at least one setting of themedical device using the medical management software, and alters a homescreen of the medical management software when a frequency of an updateto the at least one setting of the medical device exceeds apredetermined update frequency threshold.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may generate at least oneicon associated with the at least one setting, and display the at leastone icon associated with the at least one setting on the home screen ofthe medical management software.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may render a display screenassociated with the at least one icon when the at least one icon isselected by a user.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may render the altered homescreen when a connection between the computing device and the identifiedmedical device is established.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may automatically render asecond altered home screen associated with an identified second devicewhen a connection between the computing device and the second identifiedmedical device is established.

In one embodiment, the medical device may be identified, based at leastin part, on a serial number.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may alter a display screenof the medical device based on the altered home screen of the medicalmanagement software.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may track a frequency ofdisplay screens accessed by a user when a connection between the medicaldevice and the computing device is established, and alters the homescreen of the medical management software when an access frequency of atleast one of a plurality of display screens exceeds a predeterminedaccess frequency threshold.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may generate at least oneicon associated with the at least one of the plurality of displayscreens, and displays the at least one icon associated with the at leastone of the plurality of display screens on the home screen of themedical management software.

Another aspect of the present disclosure may include establishing aconnection between a peripheral device and a medical device, theperipheral device having software stored thereon for enablingcommunication between the peripheral device and the medical device;storing a current version of software of the medical device in a memoryof the medical device; updating the software of the medical device usingthe software stored on the peripheral device; and reverting to thecurrent version of the software stored in the memory of the medicaldevice when the peripheral device is disconnected from the medicaldevice.

One embodiment may further include verifying the integrity of thecurrent version of the software of the medical device stored in thememory of the medical device.

One embodiment may further include copying the current version of thesoftware of the medical device in the memory of the medical device asecond time when the integrity of the current version of the softwarestored in the memory of the medical device is not verified.

Another aspect of the present disclosure may include one or moreprocessors; and a memory for storing instructions for access by the oneor more processors which when executed, establishes a connection betweena peripheral device and a medical device, the peripheral device havingsoftware stored thereon for enabling communication between theperipheral device and the medical device, stores a current version ofsoftware of the medical device in a memory of the medical device,updates the software of the medical device using the software stored onthe peripheral device, and reverts to the current version of thesoftware stored in the memory of the medical device when the peripheraldevice is disconnected from the medical device.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may verify the integrity ofthe current version of the software of the medical device stored in thememory of the medical device.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed may copy the current versionof the software of the medical device in the memory a second time whenthe integrity of the current version of the software stored in thememory of the medical device is not verified.

Another aspect of the present disclosure may include establishing aconnection between a computing device and a medical device; determininga current version of software stored on the medical device; determiningwhether the current version of the software stored on the medical deviceis the most current version of software available for the medicaldevice; and when a more current version of software is available for themedical device: downloading the most current version of the software tothe medical device; storing the most current version of the software ina memory of the medical device; checking the integrity of the mostcurrent version of the software of the medical device; installing themost current version of the software of the medical device when theintegrity of the most current version of the software of the medicaldevice is verified; and copying the current version of the softwarestored on the medical device over the most current version of thesoftware of the medical device stored in the memory when the integrityof the most current version of the software of the medical device is notverified.

One embodiment may further include uploading data management softwarefrom the medical device to the computing device when data managementsoftware is not installed on the computing device.

One embodiment may further include determining if a version of the datamanagement software installed on the computing device is a most currentversion of the data management software.

In one embodiment, determining a current version of software stored onthe medical device may be based, at least in part, on data stored in adevice history log.

Another aspect of the present disclosure may include one or moreprocessors; and a memory for storing instructions for access by the oneor more processors which when executed, establishes a connection betweena computing device and a medical device, determines a current version ofsoftware stored on the medical device, determines whether the currentversion of the software stored on the medical device is the most currentversion of software available for the medical device, and when a morecurrent version of software is available for the medical device:downloads the most current version of the software to the medicaldevice, stores the most current version of the software in a memory ofthe medical device, checks the integrity of the most current version ofthe software of the medical device, installs the most current version ofthe software of the medical device when the integrity of the mostcurrent version of the software of the medical device is verified, andcopies the current version of the software stored on the medical deviceover the most current version of the software of the medical devicestored in the memory when the integrity of the most current version ofthe software of the medical device is not verified.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed, may upload data managementsoftware from the medical device to the computing device when datamanagement software is not installed on the computing device.

In one embodiment, the memory for storing instructions for access by theone or more processors, which when executed, may determine if a versionof the data management software installed on the computing device is amost current version of the data management software.

In one embodiment, determining a current version of software stored onthe medical device may be based, at least in part, on data stored in adevice history log.

Various other modifications and alterations in the structure and methodof operation of this disclosure will be apparent to those skilled in theart without departing from the scope and spirit of the embodiments ofthe present disclosure. Although the present disclosure has beendescribed in connection with particular embodiments, it should beunderstood that the present disclosure as claimed should not be undulylimited to such particular embodiments. It is intended that thefollowing claims define the scope of the present disclosure and thatstructures and methods within the scope of these claims and theirequivalents be covered thereby.

What is claimed is:
 1. A method, comprising: detecting, with one or moreprocessors of a medical device, an occurrence of a plurality of eventsassociated with the medical device; storing the plurality of eventsassociated with the medical device in an event log with a plurality ofunique identifiers, wherein each event of the plurality of eventsassociated with the medical device has a corresponding unique identifierin the plurality of unique identifiers; uploading at least one event ofthe plurality of events associated with the medical device to acomputing device; analyzing, with the computing device, the uploaded atleast one event of the plurality of events to determine trend dataassociated with the uploaded at least one event of the plurality ofevents; and receiving at least one recommendation for the medicaldevice, wherein the at least one recommendation is based, at least inpart, on the trend data associated with the uploaded at least one of theplurality of events, wherein the trend data corresponds to a medicationadministered to a user of the medical device, an upgrade or an update ofsoftware of the medical device, or an activity of the user of themedical device.
 2. The method of claim 1, wherein the at least onerecommendation corresponds to an offer for a consumable product relatedto treatment of a condition of the user of the medical device.
 3. Themethod of claim 1, wherein the medical device is an analyte monitoringdevice.
 4. The method of claim 1, further comprising: determining, byreference to the plurality of unique identifiers, that the at least oneof the plurality of events has not been previously uploaded to thecomputing device prior to uploading the at least one of the plurality ofevents.
 5. The method of claim 1, wherein the trend data corresponds tothe medication administered to the user of the medical device.
 6. Themethod of claim 1, wherein the trend data corresponds to the upgrade orupdate of software of the medical device.
 7. The method of claim 1,wherein the trend data corresponds to the activity of the user of themedical device.
 8. A method, comprising: detecting an operable couplingof a medical device with a peripheral device; receiving identificationdata of the peripheral device at the medical device; determining if themedical device is configured to support the peripheral device bycomparing the identification data of the peripheral device to a devicehistory log stored in a first non-volatile storage area of a memory ofthe medical device; if the identification data of the peripheral deviceis found in the device history log, proceeding with support of theperipheral device; if the identification data of the peripheral deviceis not found in the device history log, upgrading executable code anddata of the medical device so that the medical device supports theperipheral device, and storing identification data of the peripheraldevice in the medical device history log; determining if the operablycoupled peripheral device includes a data management program; if theoperably coupled peripheral device does not include a data managementprogram, uploading a data management program to the operably coupledperipheral device, the data management program having a version; andrunning the uploaded data management program on the peripheral device,wherein upgrading the executable code and data of the medical devicecomprises: copying first code and associated first data to a secondnon-volatile storage area of the memory, wherein the first code andassociated first data are current code and associated current data;downloading new upgraded code; and upon recovering from a reset, usingthe new upgraded code, wherein if a failure occurs while using the newupgraded code, reverting to using the first code and associated firstdata stored in the second non-volatile storage memory area.
 9. Themethod of claim 8, further comprising: comparing the version of theuploaded data management program from the medical device against aversion of a data management program on a network; if the version of thedata management program on the network is more current than the versionof the uploaded data management program from the medical device, thenuploading the version of the data management program on the network tothe peripheral device; and running the more current version by theperipheral device.
 10. The method of claim 8, further comprising:running a first version of a program on the medical device until theoperable coupling of the peripheral device to the medical device isdetected; and then running a second version of the program on themedical device, the second version of the program being different fromthe first version of the program.